오라클 내장 함수들

유동현·2022년 10월 10일
0

오라클

목록 보기
6/18
post-thumbnail

LPAD & RPAD

--○LPAD()
-->BYTE를 확보하여 왼쪽부터 문자로 채우는 기능을 가진 함수
SELECT 'ORACLE' "COL1"
       ,LPAD('ORACLE',10,'*') "COL2" --10바이트의 공간을 확보해라 
FROM DUAL;
--ORACLE	****ORACLE

--1.10Byte 공간을 확보한다.
--2.확보한 공간에 첫번째 파라미터인 'ORACLE'을 담는다.
--3.남은 Byte공간을 세번째 파라미터인 * 로 왼쪽부터 채운다.

--○RPAD()
-->Byte를 확보하여 오른쪽부터 문자로 채우는 기능을 가진 함수
SELECT 'ORACLE' "COL1"
       ,RPAD('ORACLE',10,'*') "COL2" --10바이트의 공간을 확보해라 
FROM DUAL;
--ORACLE	ORACLE****

LTRIM & RTRIM & TRIM

  • 첫번째 파라미터에서 두번째 파라미터에 해당하는 부분을 잘라낸 결과를 반환하는 함수

  • 단 잘라내는것은 대 소문자를 구별한다.

  • TRIM() 함수 존재
    SELECT TRIM(' TEST ') "결과"
    FROM DUAL;
    = TEST

--○LTRIM()

SELECT 'ORAORAORAORAORAORACLEORACLE' "COL1"
      , LTRIM('ORAORAORAORAORACLEORACLE','ORA') "COL2"
      , LTRIM('AAAAAAORAORACLEORACLE','ORA') "COL3"
      , LTRIM('ORAORAORAoRAORACLEORACLE','ORA') "COL4" --대소문자를 구별해서 잘라내므로 소문자를 만나면 작동중지
      , LTRIM('ORAORAOR AORAORACLEORACLE','ORA') "COL5"
      , LTRIM('             RACLEORACLE',' ') "COL6" --공백을 자를때는 두번째 파라미터 생략 가능
FROM DUAL;
--ORAORAORAORAORAORACLEORACLE	CLEORACLE
--자른부분을 버리고 남은부분을 반환한다.
--'O','R','A'이렇게 하나씩 자른다.
--ORAORAORAORAORAORACLEORACLE
--CLEORACLE
--CLEORACLE
--oRAORACLEORACLE
--AORAORACLEORACLE
--RACLEORACLE
--첫 번째 파라미터 값에 해당하는 문자열을
--왼쪽부터 연속적으로 등장하는 두 번째 파라미터 값에서 지정한 글자와
-- 같은 글자가 등장할 경우 이를 제거한 결과 값을 반환
--단, 완성형 처리는 x
--중간에 두번째 파라미터에 없는 문자를 만나면 작동중지된다.

--○RTRIM()
--위와 동일

TRANSLATE()

첫번째 파라미터에서 두번째 파라미터에 해당하는 부분을 세번째파라미터의 문자별로 교체한 결과를 반환하는 함수


--○TRANSLATE()
-->1:1 로 바꿔준다.--문자열을 문자별로 1:1 교환
SELECT TRANSLATE('MY ORACLE SERVER'
                 , 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
                 , 'abcdefghijklmnopqrstuvwxyz') "COL1"
FROM DUAL;
--my oracle server

SELECT TRANSLATE('010-3578-3912'
                 , '0'
                 , '공') "COL1"
FROM DUAL;
--공1공-3578-3912

SELECT TRANSLATE('010-3578-3912'
                 , '0123456789'
                 , '공일이삼사오육칠팔구') "COL1"
FROM DUAL;
--공일공-삼오칠팔-삼구일이

REPLACE

  • TRANSLATE와 달리 문자별로 바꾸는것이 아닌 두번째 파라미터에 해당하는 부분만 세번째 파라미터로 교체된다.

SELECT REPLACE('MY ORACLE SERVER ORAHOME','ORA','오라')"COL1"
FROM DUAL;
--MY 오라CLE SERVER 오라HOME

ROUND

  • 반올림 처리 함수
--ROUND() 반올림을 처리해 주는 함수
SELECT 48.678 "COL1"
      ,ROUND(48.678,2) "COL2" --소수점 이하 둘째자리까지 표현해라
      ,ROUND(48.674,2) "COL3"
      ,ROUND(48.678,1) "COL4"
      ,ROUND(48.678,0) "COL5"
      ,ROUND(48.678) "COL6"
      ,ROUND(48.678,-1) "COL7"
      ,ROUND(48.678,-2) "COL8"
      ,ROUND(48.678,-3) "COL9"
FROM DUAL;
/*
48.678	48.68	48.67	48.7	49	49	50	0	0
*/

TRUNC

  • ROUND와 달리 단순 절삭을 수행하는 함수
SELECT 48.678 "COL1"
      , TRUNC(48.678,2) "COL2"
      , TRUNC(48.674,2) "COL3"
      , TRUNC(48.674,1) "COL4"
      , TRUNC(48.674,0) "COL5"
      , TRUNC(48.674) "COL6"
      , TRUNC(48.674,-1) "COL7"
      , TRUNC(48.674,-2) "COL8"
      , TRUNC(48.674,-3) "COL9"
FROM DUAL;
--48.678	48.67	48.67	48.6	48	48	40	0	0

MOD, POWER, SQRT, LOG


--○MOD() 나머지를 반환하는 함수
SELECT MOD(5,2) "COL1"
FROM DUAL;
-->5를 2로 나눈 나머지 결과값 반환
--==>>1

--○POWER() 제곱의 결과를 반환하는 함수
SELECT POWER(5,3) "COL1"
FROM DUAL;
-->5의 3승을 결과값으로 반환
--==>>125

--○SQRT() 루트 결과값을 반환하는 함수
SELECT SQRT(2) "COL1"
FROM DUAL;
-->루트 2에 대한 결과값
--=>1.41421356237309504880168872420969807857

--○LOG() 로그 함수
-- 오라클은 상용로그만 지원하는 반면, MYSQL은 상용로그,자연로그 모두 지원
SELECT LOG(10,100)"COL1"
      ,LOG(10,20) "COL2"
FROM DUAL;

--==>>2	1.30102999566398119521373889472449302677

- LN() 자연 로그 함수 존재
SELECT LN(95) "RESULT"
FROM DUAL;

삼각함수


-○삼각함수(범위: -1 ~ 1)
SELECT SIN(0.5), COS(0.5), TAN(0.5)
FROM DUAL;

--0.4794255386042030002732879352155713880819	0.8775825618903727161162815826038296520119	0.5463024898437905132551794657802853832851

--○삼각함수의 역함수(범위: -1 ~ 1)
SELECT ASIN(0.5), ACOS(0.5), ATAN(0.5)
FROM DUAL;
/*
0.52359877559829887307710723054658381405	1.04719755119659774615421446109316762805	0.4636476090008061162142562314612144020295
*/
-->각각 어싸인, 어코싸인, 어탄젠트 결과 값을 반환한다.

SIGN


--SIGN() 서명 부호 특징
-->연산 결과값이 양수이면 1, 0이면 0, 음수이면 -1을 반환한다.
SELECT SIGN(5-2) "COL1"
       ,SIGN(5-5) "COL2"
       ,SIGN(5-7) "COL3"
FROM DUAL;
-->>1	0	-1
-->매출이나 수지에 관련하여 적자 및 흑자의 개념을 나타낼때 종종 사용된다.

ASCII , CHR()

--○ASCII(), CHR() -> 서로 대응(상응)하는 함수
SELECT ASCII('A') "COL1"
      ,CHR(65) "COL2"
FROM DUAL;
--==>65	A
-->ASCII() : 매개변수로 넘겨받은 문자의 아스키코드 값을 반환
-->CHR() : 매개변수로 넘겨받은 아스키코드 값으로 해당 문자를 반환한다.

0개의 댓글