오라클 기본 함수 - 문자열

Study/Oracle 2017. 12. 3. 10:10 Posted by meanoflife
반응형

내가 일하는 업종에서는 DB로 오라클을 많이 사용한다.

예전에는 DW쪽은 Sybase를 많이 사용했는데, 요즘은 DW도 오라클 Exa-data를 많이 사용하는 것 같다.


한때 Sybase를 공부해 보려 했으나, 책과 자료가 너무 없어 접근이 어려웠었다.

아직도, Sybase는 잘 모르겠다. ( 물론, 오라클도 걸음마 수준이긴 하다 )


항상 인터넷을 찾아보는 오라클 함수 및 오류 코드, 힌트와 같은 내용을 카테고리별로 분류하여 정리해 본다.


> 오라클 Syntax

  https://ss64.com/ora/


>  ERROR 관련 함수


- SQLCODE : 현재 발생한 오류에 대한 오류 코드를 반환.

- SQLERRM : 오류 코드에 대한 오류 메시지 반환. 


< 문자열 함수 >


-  ASCII( {문자열} )

  : 문자를 ASCII코드로 변환한다.

    ex) ASCII( 'A' ) => 65


- CHAR( {ASCII 코드} )

  : ASCII 코드를 문자로 변환한다.

    ex) CHAR( 65 ) => A


- CONCATE( {문자열1}, {문자열2} )

  : 문자열1과 문자열2를 조합한다. ( ||와 동일한 효과 )

    ex) CONCATE( 'Oracle ', 'Study' ) => Oracle Study


- SUBSTR( {문자열}, {시작Index}, {문자수} )     // 문자수는 생략가능( 생략시 끝까지 ), INDEX는 1부터 시작

  : 문자열에서 특정 위치부터 잘라서 반환한다.

    ex) SUBSTR( 'ABCDEF', 3, 2 ) => CD


- INITCAP( {문자열} )

  : 첫 글자는 대문자, 나머지는 소문자로 반환한다.

    ex) INITCAP( 'ABCDEF' ) => Abcdef


- UPPER( {문자열} )

  : 문자열을 대문자로 반환한다.

    ex) UPPER( 'abcdef' ) => ABCDEF


- LOWER( {문자열} ) 

  : 문자열을 소문자로 반환한다.

    ex) LOWER( 'ABCDEF' ) => abcdef


- LPAD( {문자열}, {자릿수}, {채울 문자} )

  : 문자열을 기준으로 왼쪽에 '자릿수'만큼 '채울 문자'로 채운다.  // 자릿수 부족시 문자열 그대로 반환

    ex) LPAD( 'ABCDEF', 10, '-' ) => ----ABCDEF


- RPAD( {문자열}, {자릿수}, {채울 문자} )

  : 문자열을 기준으로 오른쪽에 '자릿수'만큼 '채울 문자'로 채운다.  // 자릿수 부족시 문자열 그대로 반환

    ex) RPAD( 'ABCDEF', 10, '-' ) => ABCDEF----


- LENGTH( {문자열} )

  : 문자열을 길이를 반환한다.  // 문자의 갯수를 반환함으로, 영문/한글 모두 1개로 계산함.

    ex) LENGTH( '한글10' ) => 4


- LENGTHB( {문자열} ) 

  : 문자열의 길이를 Byte단위로 반환한다.  // 영문/숫자 1Byte, 한글 2Byte

    ex) LENGTHB( '한글10' ) => 6


- REPLACE( {문자열}, {찾을문자열}, {바꿀문자열} )

  : 찾을문자열을 바꿀문자열로 변경한다.

    ex) REPLACE( 'ABCDEF', 'BC', 'AA' ) => AAADEF


- INSTR( {문자열}, {찾을문자열} )

  : 문자열에서 찾을문자열의 (시작) 위치를 반환한다.  // INDEX는 1부터 시작

    ex) INSTR( 'ABCDEF', 'BC' ) => 2


- TRIM( {문자열} ), LTRIM( {문자열} ), RTRIM( {문자열} )

  : 문자열에서 좌/우 공백을 제거한다. ( TRIM:양쪽, LTRIM:왼쪽,  RTRIM:오른쪽 )

    ex) TRIM( ' ABCDEF ' ) => ABCDEF   // 공백없이


* TRIM 3가지 기능

 1)  LEADING

      : 문자열의 왼쪽에 정의한 문자가 존재하면 절삭처리하여 반환한다.

      ex) SELECT TRIM( LEADING 'A' FROM 'ABCD' ) FROM DUAL => BCD


 2) TRAILING

      : 문자열의 오른쪽에 정의한 문자가 존재하면 절삭처리하여 반환한다.

      ex) SELECT TRIM( TRAILING 'A' FROM 'DCBA' ) FROM DUAL => DCB


 3) BOTH

      : 문자열의 양쪽에 정의한 문자가 존재하면 절삭처리하여 반환한다.

      ex) SELECT TRIM( BOTH 'A' FROM 'ABCDCBA' ) FROM DUAL => BCDCB


- TRANSLATE(
{문자열}, {찾을문자}, {바꿀문자} )

  : REPLACE와 동일

하나, 문자 단위로 처리

    ex) TRANSLATE( 'ABCABC', 'A', '-' ) => -BC-BC

 





반응형