-- 하드디스크를 털다보니 예전에 공부할때 썻던게 보이네요..
-- 그냥 가져다 붙여놓은것인지.. 편집을한것인지.. 원작자는 모릅니다..ㅡㅜ
-- 어째튼 vi 때문에 고민하시는 분들께는 도움이될지도 모른다는생각에 공개합니다.
-- 글을올리고나니 쫌 깨지는부분이 있어서 txt 파일로도 첨부합니다.(훨씬깨끗.ㅡㅡ)



vi 에디터  

             1 Cursor 위치를 변경하는 명령들 

             2 vi 명령들 

             3 자세한 정보를 가져 오려면... 

              

  명령을 잘 활용하는 방법은 'man' 명령을 이용하는 것입니다. 

  UNIX 명령에 좀 익숙 하신분들은 'man' 명령을 활용 하십시오. 

  

1. 

                       vi Cursor Positioning  

    - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - 

    :1G (go                                                            : 

    :                      /\  ^b (back                                : 

    :                      ||                    /\   ^u (up           : 

    |----------------------||--------------------||--------------------| 

    |H (home                                                           | 

    |                               k                   O (open        | 

    |I            i (insert        /\    a (append     P (put        A | 

    |                              |                                   | 

    |O <--------- h <-------  you are here  -------> l -------------->$| 

    |                              |                                   | 

    |M (middle     (backspace      \/    (space bar    p(put           | 

    |                               j                   o (open        | 

    |             Y (yank                         /string              | 

    |                                             n repeat last search | 

    |L (last                                      . repeat last command| 

    |----------------------||--------------------||--------------------| 

    :                      ||                    \/   ^d (down         : 

    :                      \/  ^f (forward                             : 

    :\$G (go                                                           : 

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  - - - - " 

 

 

2. vi 명령들  

                  1 Cursor를 옮기는 여러가지 방법 

                  2 화면을 옮기는 여러가지 방법 

                  3 한 화면 안에서 cursor를 옮기는 방법 

                  4 한 line 안에서 cursor를 옮기는 방법 

                  5 검색  

                  6 vi를 빠져나가는 방법  

                  7 삽입 mode  

                  8 Yanking : (Copying 

                  9 Deleting  

                 10 Putting  

                 11 Interactive edit : (search and replace 

                 12 Global 명령 

                 13 Reading in files  

                 14 여러 화일의 edit 

                 15 Miscellancenous commands  

 

1 Cursor를 옮기는 여러가지 방법  

                                       k(- 

                                        /\  

                                        || 

                        h(bs    <-----       ----->   l(sp 

                                        || 

                                        \/ 

                                       j(+ 

        h,j,k 와 i 를 이용하영 간단히 키보를 누르면 cursor의 위치가 변  

        경됩니다. 

        (에 있는 키를 선택하여도 됩니다. 

         bs : BackSpace                       sp : SPace bar " 

 

2 화면을 옮기는 여러가지 방법  

                  ^f  -  (FORWARD 화면을 one page 앞으로 옮김 

                  ^b  -  (BACKWARD 화면을 one page 뒤으로 옮김 

                  ^d  -  (DOWN 화면을 반 page 앞으로 옮김 

                  ^u  -  (UP 화면을 반 page 뒤으로 옮김 

              ^  는 키보드의 ctrl 를 나타내는 것입니다." 

 

3 한 화면 안에서 cursor를 옮기는 방법  

             H  -  HOME, 한 화면의 top line으로 옮긴다. 

             M  -  MIDDLE, 한 화면의 중간으로 옮긴다. 

             L  -  LAST, 한 화면의 마지막  line으로옮긴다. 

             G  -  GOTO,  화일의 마지막  line으로 옮긴다. 

             nG -  GOTO nth line the file (or :n 

             ^G -  GIVES file status  

              ^  는 키보드의 를 나타내는 것입니다." 

 

4 한 line 안에서 cursor를 옮기는 방법  

                      w  -  WORD, 한단어 앞으로 

                      b  -  BACKWARD, 한단어  뒤로 

                      e  -  END, 현재 cursor가 위치한 맨 뒤로 

                      o  -  zero, line의 맨 앞으로 (or ^ 

                      $  -  end, line의 맨뒤로" 

  

5 검색  

        /pattern -  scan (/ 'pattern'이라는글자를 현재 cursor가 

                    위치한 곳의 다음 단어를 검색 

        ?pattern -  scan (? 'pattern'이라는 글자를 현재 cursor가 

                    위치한 곳의 앞 단어를 검색 

        n     -  앞쪽에서 입력했었던 문자 'pattern' 의 다음단어를 검색 

        N     -  앞쪽에서 입력했었던 문자 'pattern' 의 다음 앞 단어를  

                  검색" 

 

6 vi를 빠져나가는 방법  

           :q!  -  화일의 내용을 저장하지 않고 exit 

           :w   -  WRITE, vi를 빠져나가지 않으면서 내용을 저장 

           :wq  -  WRITE and QUIT, vi를 빠져나가면서  내용을 저장 

           ZZ   -  :wq의 명령과 같다." 

  

7 삽입 mode  

             i   -  INSERT, cursor 위치 부터 문자 삽입 

             I   -  INSERT, line의 맨 앞부터 문자 삽입 

             a   -  APPEND, cursor 다음 위치 부터 문자 삽입 

             A   -  APPEND, cursor 위치한 line의 끝부터 문자 삽입 

             o   -  OPEN line, 현재의 line 다음에 line 삽입 

             O   -  OPEN line, 현재의 line 앞에 line 삽입 

             r   -  REPLACE, 한 문자만을 대치 (does not require ESC 

             R   -  REPLACE, ESC 키가 입력될때 까지 대치  

             cw  -  CHANGE word, cursor가 위치한 곳의 단어 끝까지 대치 

                    (cnw - change n number of words 

             C   -  CHANGE, cursor가 위치한 곳에서 line 끝까지 대치 

             u   -  UNDOES, 마지막 명령의 취소 

             U   -  UNDOES, line전체를 원 상태로 복구 

Note :   INSERT mode 를 만든는 모든 문자(i, a, o,r, c, s <대문자 포 

         함>를 사용하는 경우 insert mode에서 입력 한 내용을  취소하고 

         자 하면, ESC 를 누르고 undo를 수행하는 u를 입력하면 된다. 

Note :  ESC (escape key 는 삽입(insert를 중지 시키고 명령어 mode로   

        돌아가는 키이다." 

 

8 Yanking : (Copying  

        Y  -  YANKS (copies line을 사용자가 보이지 않는 buffer에 저장 

        yy -  YANKS (copies line을 사용자가 보이지 않는 buffer에 저장 

        nY -  YANKS n , n line을 사용자가 보이지 않는 buffer에 저장" 

 

9 Deleting  

        x   -  deletes, 문자 하나를 삭제 (also 'd sp' 

        dw  - DELETES words, 문자 하나를 삭제  

        D   -  DELETES, cursor가 있는 곳에서 부터 line끝 까지 삭제  

        dd  -  DELETES lines, line하나를 삭제 하고 보이지 않는 buffer 

               에 저장 

        ndd -  DELETES n, n line을 삭제 하고 보이지 않는 buffer에 저장 

               (i.e., 10dd deletes 10 lines" 

 

10 Putting  

        p  -  PUTS, cursor가 위치한 다음 line에 보이지 않는 buffer의 

              내용을 삽입 

        P  -  PUTS, cursor가 위치한 앞 line에 보이지 않는 buffer의 

              내용을 삽입 

        xp -  cursor 가 위치한 문자와 다음 문자를 교환" 

 

11 Interactive edit : (search and replace  

        /pattern -  find, pattern이라는 문자를 검색 

        cw       -  change word, 단어를 대치 (cw. dw, r, s, etc. 

        n        -  find, 앞에서 검색했던 'pattern'이라는 문자를 검색 

                    하는 반복 명령 

        N        -  find, 앞에서 검색했던 'pattern'이라는 문자를 역순 

                    으로 검색 하는 반복 명령" 

 

12 Global 명령  

                 Global replacement  

                :1,\$s/string1/string2/g 

                1 line부터 끝까지 string1 를 string2 로 대치 

        e.g.,   :1,\$s/sun/SUN/ 

                      Global delete  

                :g/pattern/d 

                1 line부터 끝까지 pattern 을 제거 

        e.g.,   :g/###/d (to delete lines inserted by cc file.c | &  

                 error-v" 

 

13 Reading in files  

        :r  file2 - cursor가 위치한 다음 line에 file2를 삽입" 

 

14 여러 화일의 edit  

        :w      -  다른 화일을 읽기전에 현재의 화일을 저장 (file1 

        :e file2  -  두번째 file을 edit하기 위해 load (file2 

        :w      -  두번째 화일을 저장 (file2 

        :e #    - original file 을 수정하기 위해 load (file1 

        example:w              /* file1을 빠져 나가기전에 저장*/ 

                :e file2        /* file2 load   */ 

                        \"x4Y   /* buffer 'x'에 file2의 top 4 line을  

                                   저장 */ 

                :e #            /* file1 을 load (no changes */ 

                        \"xP    /* buffer 'x'에 저장 되어 있는 내용을  

                                   put */" 

 

15 Miscellancenous commands  

        :! cmd  -  editor안에서 shell command를 수행 하고자 할때 

        ~       -  (tilde or 'wavy', 대문자를 소문자로 소문자를 대문자 

                    로 교환 

        %       -  한 line안에서 (,,{,},[,]를 검색 

        mx      -  문자 x에 현재 위치를 표시 

        d'x     -  문자 x에 표시된 위치 부터 현재 cursor 위치 까지 삭 

                    제 

        ^V      -  allows for insertion of control characters (e.g.,  

                   ^L 

        ?string -  scan (/ backward for 'pattern' 

        :n,m w file -  n line에서 m line까지 내용을  file 이라는 이름   

                       으록 (e.g., 15,25 w file 

        J       -  JOINS, cusor가 있는 line과 다음 line을 join  

        :set ai -  editor 가 자동적으로 insert tabs을 삽입 

        :set list -  special characters 를 보여줌 

                     (i.e., non-printable characters 

        :set nows -  stop wraparound search 

        :set ts=n -  set tab stops to be other than the default (8 

        :set wm=n -  set wrap margin (automatic carriage return insert  

                     at n" 



블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

GRANT 문을 이용한 사용자 및 권한 관리

 

 

 

 

 

▶ 모든 권한 주기

mysql> grant all privileges on *.* to 사용자명@호스트
     -> identified by '비밀번호' with grant option;

▶ 특정 사용자에게 특정 DB의 모든 테이블에 모든 권한 부여하기

mysql> grant all privileges on DB명.* to 사용자명@호스트 identified by '비밀번호';

▶ 특정 사용자에게 특정 DB의 모든 테이블에 select, insert 권한 부여하기

mysql> grant select, insert on DB명.* to 사용자명@호스트 
     -> identified by '비밀번호';

▶ 특정 사용자에게 특정 DB의 특정 테이블의 정해준 컬럼에만 update 권한 부여하기

mysql> grant update(컬럼1,컬럼2,컬럼3) on DB명.테이블명 to 사용자명@호스트
     -> identified by '비밀번호';

▶ 모든 호스트에서 접속가능하고 select 권한만 갖는 사용자를 추가할 땐

mysql> grant select on DB명.* to 사용자명@% identified by '비밀번호';

▶ ip주소가 192.168.0.으로 시작하는 컴퓨터에서 접속가능한 사용자를 추가할 땐

mysql> grant all privileges on *.* to 사용자명@'192.168.0.%' identified by '비밀번호';


▶ 모든 권한 삭제

mysql> REVOKE ALL PRIVILEGES ON *.* FROM 사용자명@호스트;

▶ usage (삭제하면 로그인조차 안됨) 권한 부여, 삭제

usage 권한 부여 mysql> GRANT USAGE ON *.* TO USER_NAME@HOST IDENTIFIED BY 'USER_NAME'; usage 권한 삭제 mysql> REVOKE USAGE ON *.* FROM USER_NAME@HOST;


▶ 권한 확인하기

mysql> SHOW GRANTS FOR 사용자명;
▶ 사용자 삭제 
mysql> drop user 사용자명@호스트;
▶ 변경사항 적용
mysql> flush privileges;
블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

 

리눅스 APM 소스설치시 Error 및 해결 방법


 

 

APM 소스설치시 발생되는 몇가지 Error와 그 해결 방법이다.

1. Mysql
Error 1)
checking for termcap functions library... configure: error: No curses/termcap library found
make: *** No targets specified and no makefile found.  Stop.
해결 방법
# yum –y install libtermcap-devel ncurses-devel 설치

Error 2)
/bin/rm: cannot remove `libtoolT': No such file or directory 
해결 방법
mysql 소스파일 Directory에서 아래 진행
# autoreconf --force --install
# aclocal
# libtoolize --automake --force
# automake --force --add-missing

2. Apache
Error 1)
configure: error: ...No recognized SSL/TLS toolkit detected

해결 방법
# yum –y install openssl-devel

3. PHP
Error 1)
Checking for pkg-config... /usr/bin/pkg-config
configure: error: Cannot find OpenSSL's <evp.h>
해결 방법
# yum –y install openssl-devel

Error 2)
Configure: error: xml2-config not found. Please check your libxml2 installation.
해결 방법
# yum –y install libxml2-devel

Error 3)
Configure: error: Please reinstall the libcurl distribution -
easy.h should be in <curl-dir>/include/curl/
해결 방법
# yum –y install curl-devel

Error 4)
Configure: error: libpng.(also) not found.
해결 방법
# yum –y install libpng-devel

Error 5)
Configure: error: Please reinstall the BZip2 distribution
해결 방법
# yum –y install bzip2-devel

Error 6)
Configure: error: libjpeg.(also) not found.
해결 방법
# yum –y install libjpeg-devel

Error 7)
Checking for unixODBC support... configure: error: ODBC header file '/usr/include/sqlext.h' not found!
해결 방법
# yum –y install unixODBC-devel

Error 8)
configure: error: DBA: Could not find necessary header file(s).
해결 방법
# yum –y install gdbm-devel

Error 9)
Configure: error: Cannot find MySQL header files under /usr.
Note that the MySQL client library is not bundled anymore!
해결 방법
# yum –y install mysql-devel

Error 10)
Configure: error: freetype.h not found.
해결 방법
# yum –y install freetype-devel

Error 11)
Configure: error: Unable to locate gmp.h
해결 방법
# yum –y install gmp-devel

Error 12)
Configure: error: Cannot find pspell
해결 방법
# yum –y install pspell-devel

Error 13)
configure: error: not found. Please reinstall the expat distribution.
해결 방법
# yum –y install expat-devel

Error 14)
Configure: error: Please reinstall the ncurses distribution
해결 방법
# yum –y install ncurses-devel

Error 15)
Configure: error: snmp.h not found. Check your SNMP installation.
해결 방법
# yum –y install net-snmp-devel

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

MySQL Database 를 사용함에 있어서 사용자를 추가하는 예제

 

사용자를 추가하기 위해 user 테이블에 항목을 추가하는 방법을 사용할 수 있으나
여러가지 오류를 발생 시킬 수 있으므로 권하지 않습니다.

따라서 GRANT 문을 이용하여 사용자 계정을 추가하는 방법을 설명합니다.

GRANT 명령문은 사용자 계정에 권한을 부여하는 명령으로 특정 사용자에게 특정 데이터베이스에 대한 권한을 설정할 수 있습니다.

 

 


이제 test_user 라는 사용자를 만들고 이 사용자의 비밀번호를 '1234'로 설정하고 my_database에 대한 모든 권한을 부여하는 방법을 설명하겠습니다.

우선 root 권한으로 MySQL DB 에 접속 합니다.

mysql -u root -p

비밀번호를 묻는 프롬프트가 나오면 비밀번호를 입력한 후 접속합니다.


접속 후 my_database 라는 DB 를 만들어 봅니다.

create database my_database;

사용자 생성 및 권한을 부여합니다.

grant all privileges on my_database.* to test_user@localhost identified by '1234' with grant option;


상기 명령으로 생성된 유저는 localhost 에서의 접속만 허용하게 됩니다.
이 부분에 별도의 IP 나 hostname 을 주게되면 해당 IP 혹은 hostname 에서만 접속이 가능하게
됩니다.

만약 이부분을 '%' 로 지정하게 된다면, 모든 원격지에서의 접근이 가능해지게 됩니다.

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

VI 에서 유용한 찾기/바꾸기 명령들

 

1. 문서 처음부터 마지막까지의 char 를 _char_ 로 치환한다.
:%s/char/_&_/g

 

2. 현재(커서위치)부터 마지막까지의 char 를 _char_ 로 치환한다.
:.,$s/char/_&_/g

 

3. buf_.*[255], buf_in[255], buf_get[255] 와 같은 문자열을 hello 로 변경한다.
:1,10s/buf_.*\[255\]/hello/g

 

4. 숫자로만 이루어진 행 찾기는 다음과 같습니다.

/^\d\+$

^ : 행의 첫부분
\d : 0~9까지의 숫자
+ : 바로 앞의 글자 (여기서는 숫자)가 1개나 1개 이상 있음. (즉 숫자가 최소한 1개 있음)
$ : 행의 마지막 부분

 

5. 전체 문서에서 add 를 plus로 치환

:s/add/plus/g

 

6. 현재 편집중인 전체 문서에서 /etc/ 를 /etc/local/ 로 치환

:s/\/etc\//\/etc\/local\//g

 

7. '앗싸좋구나108계단' 이 '좋구나108계단앗싸' 로 바뀝니다.

:%s/\(앗싸\)\(좋구나\)\(108계단\)/\2\3\1/g

 

8. 대소문자 구분없이 바꾸려면 i 옵션을 붙입니다. 이것은 ".vimrc" 파일을 고치지 않아도 작동합니다.

:%s/foo/bar/i

 

9. 정확하게 foo에 일치될 때만 바꿉니다. 즉 foo는 바꾸지만, foo 앞뒤로 다른 문자열이 붙어 있는 경우에는 바꾸지 않습니다.

:%s/\/bar

 

10. 정렬

123 def ghi
432 ius dkf
089 cdo lks

이걸 숫자를 가운데로, 두번째는 끝, 세번째 처음으로 보내려면

:%s/\([0-9]*\) \([a-z]*\) \([a-z]*\)/\3 \2 \1/g

 

11. 만약 3~5자리로 이루어진 모든 숫자를 검색하고 싶다면 다음과 같이 입력한다.

/[0123456789]\{3,5\} 또는
/[0-9]\{3,5\}

 

12. 만약 `ab'로 시작하는 소문자로 되어 있는 모든 단어를 삭제하려면 다음과 같이 입력한다.

:%s/ab[a-z]*//g

 

13. 만약 test라는 파일에 cpu가 들어있는 라인을 모조리 지우고자 한다면 vi mode에서 아래와 같이 사용한다.

:g/cpu/d

# g는 모든 라인에 적용한다라는 의미이고,
# d는 delete를 의미합니다.

 

14. stat0,stat1.....stat9 패턴이 있는 라인을 모조리 지우기

:g/stat[0-9]/d

 

15. 빈 줄 두 줄을 한 줄로 바꾸기

:%s/\n\n/\n/g

 

16. 두 칸을 한 칸으로 줄이기

:%s/ / /g

 

17. 탭을 스페이스 공백으로 바꾸기

:%s/\t/ /g

 

18. 마지막에 한 칸 띠우고 엔터된 것을 바로 엔터한 것으로 고치기

:%s/ $//g 또는
:%s/ \n/\n/g

 

19. 줄 첫 칸의 띠어쓰기를 없애기

:%s/^ //g

 

20. 잘못 바꾸기를 했을 때 되돌리려면 그냥 u 키를 누르면 됩니다.

 

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

ORA-12899: value too large for column

( ORA-12899: "유저명"."테이블명"."컬럼명" 열에 대한 값이 너무 큼(실제: 16, 최대값: 10)  )

 

 

 

해당에러는 표현된 컬럼에 정의되어진 길이보다 큰 문자열을 INSERT 하려고 할때 발생하는 에러.

 

실제로 값이 커서 발생하는 문제일 수도 있으나,  간혹 캐릭터셋(charset) 의 문제로 인한 에러가 발생 할 수도 있음.

 

실제 UTF-8 과 ASCII 의 Byte 수가 틀리기 때문입니다.

 

 

해당 오류가 발생할 경우 1차적으로 해당 컬럼에 삽입되어지는 데이터의 값을 먼저 확인을 하시면 되고,

 

한글등이 섞여 있는 경우는 Byte 수를 잘 계산하여 컬럼 사이즈와 비교를 해봐야 함.

 

오라클 캐릭터셋의 변경은 다음과같이..

 

---------------------------------------------

해결방안 먼저 로컬의 문자셋 확인

select * from propS$ where NAME LIKE 'NLS_%';

 

현재의값 'AL32UTF8'을  'KO16KS5601'로 변경한다.

 

UPDATE PROPS$ SET VALUE$='AL32UTF8' WHERE NAME = 'NLS_CHARACTERSET';

오라클 재시작...

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

Linux iptabes 설정

 

 

초기 세팅시 iptable 명령어 이용보다는 

/etc/sysconfig/iptables 파일을 직접 편집하여 설정 하는게 편함

 

 

 

 

#Generated by iptables-save v1.4.7 on Mon Jun  9 16:13:55 2014

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT

-A FORWARD -j RH-Firewall-1-INPUT

-A RH-Firewall-1-INPUT -i lo -j ACCEPT

-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j DROP

-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j DROP

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j DROP

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT

-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

COMMIT

# Completed on Mon Jun  9 16:13:55 2014

 

필요한 포트를 ACCEPT 하거나 DROP 함.

 

설정변경 후

 

/etc/init.d/iptables restart

 

명령을 이용하여 서비스 재시작하여 적용

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

MSSQL 에서 ALTER TABLE ALTER COLUMN 이 안될때

 

MSSQL 을 사용하다 컬럼 속성을 변경하고자 하는 경우

 

ALTER TABLE [테이블명] ALTER COLUMN [컬럼명] [속성]

 

의 형태로 변경을 해야 할 경우가 생기곤 합니다.  그러나 해당 명령을 할때, 에러와 함께 변경이 안되는 경우가 있는데요.

 

이는 CONSTRAINT  의 종속성을 가지고 있는 컬럼일 수 있습니다.

 

이때는 해당 FK 를 삭제 후 컬럼을 변경하고 다시 생성을 해줍니다.

 

 

예를들어

 

[test] [int] NULL CONSTRAINT [DF_test]  DEFAULT ((0))

 

이런 형태로 생성된 컬럼을 변경하고자 한다면,

 

ALTER TABLE [테이블명] DROP CONSTRAINT [DF_test];
ALTER TABLE [테이블명] ALTER COLUMN [test] numeric(18,2) ;
ALTER TABLE [테이블명] ADD CONSTRAINT [DF_test]  DEFAULT ((0)) FOR [test];

 

이런식으로 진행을 해주시면 되겠습니다.

 

 

'Database & Server Tip > MSSQL' 카테고리의 다른 글

[MSSQL] MD5 암호화 하기  (0) 2014.07.17
블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

[MSSQL] MD5 암호화 하기

 

 

MSSQL 에서 MD5 형태의 암호화를 하는 방법입니다.

 

 

 

 

SELECT
 UPPER (SUBSTRING( master.dbo .fn_varbintohexstr( HashBytes('MD5' , '변경할 데이터')), 3 , 32))

이는 MSSQL2005 버전부터 지원가능한 함수입니다.

 

TEST 라는 테이블의 T1 이라는 컬럼에 MD5 암호화로 적용하려면 UPDATE 문으로 가능합니다.

 

UPDATE TEST SET T1 = UPPER (SUBSTRING( master.dbo .fn_varbintohexstr( HashBytes('MD5' , '1234')), 3 , 32))

'Database & Server Tip > MSSQL' 카테고리의 다른 글

[MSSQL] ALTER TABLE ALTER COLUMN 이 안될때  (0) 2014.07.31
블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

ora-12541 : TNS:no listener.

ora-12541 : TNS 리스너가 없습니다.

 

 

오라클의 해당 에러는 오라클 클라이언트가 서버에 접속하고자 할 때 지정된 리스너에 연결을 할 수 없는 경우에

발생하는 에러로서.  몇가지의 상황이 있을 수가 있습니다.

 

1. client 에서의 tnsnames.ora 설정 확인

  

   tnsnames.ora 파일에서 접속하고자 하는 오라클 서버의 설정이 제대로 되어있는지 확인

 

2. 오라클 서버에 리스너 구동 여부 확인

 

 

   lsnrctl status 명령어를 이용하여 상태를 확인 하고 만약 정지되어 있다면

   lsnrctl start 명령을 통해 리스너를 구동

 

3. 서비스 연결 확인

 

   tnsping 명령으로 서버 연결 상태를 확인해 보는경우.

   또는 telnet 명령으로 해당 서버에 대한 오라클 포트가 열려있는지 확인

 

마지막으로 희박한 경우이기는 하나 listener 의 로그파일이 너무 커져서 발생할 수도 있습니다.

 

이때는 , listener/trace 디렉토리의 listener.log 파일을 체크하여 복사해놓고 새로 생성해 주시거나 하시면 됩니다.

 

 

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,