달력

112024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

1. NVL

- IFNULL 함수로 변경

- MariaDB  : SELECT IFNULL(LAST_IP,'XXX') FROM CO_CD_ITEMCD_0;

1-1. NVL2

NVL2(expr,expr1,expr2)

-> expr의 값이 null이 아닐 경우에는 expr1의 값을 반환하고 null일 경우에는 expr2의 값을 반환

- CASE 문으로 변경 ( COALESCE()함수와는 다른용도임.)

- ORACLE : SELECT NVL2(MENU_ID, 'Y','N') AS NVL2 FROM MENU ;

- MYSQL  : SELECT CASE WHEN MENU_ID IS NULL THEN 'N' ELSE 'Y' END AS NVL2 FROM MENU

2. SYSDATE 함수

- NOW() 함수로 변경

- Oracle     : SELECT SYSDATE FROM DUAL;

- MariaDB  : SELECT NOW() ; 또는 SELECT SYSDATE() ;

3. TRUNC(SYSDATE) 

- CURDATE() 사용

- Oracle     : SELECT TRUNC(SYSDATE) FROM DUAL;

- MariaDB  : SELECT CURDATE() ;

4. TO_CHAR()

4-1. 데이트형을 문자로 변환 

- DATE_FORMAT() 함수로 변경

- Oracle     : SELECT TO_CHAR(SYSDATE, 'MMDDYYYYHH24MISS') FROM DUAL ;

- MariaDB  : SELECT DATE_FORMAT(now(),'%m%d%Y%H%i%s') ;

( '%Y%m%d' 대소문자 주의!!! Y 4자리, y 2자리, %m 12기준 %M 24기준 )

( now()함수는 SYSDATE()함수로도 사용가능 )

 

4-2. 숫자를 문자로 변환하고 앞자리 공백대신 문자넣기

LPAD() 사용

- Oracle   : SELECT TO_CHAR(1, 'FM00') FROM DUAL;

- MariaDB : SELECT LPAD(1, 2, '0') ;

-> LPAD()함수는 오라클과 사용방법이 동일하다.

5. TO_DATE()

- STR_TO_DATE() 함수로 변경

- Oracle     : SELECT TO_DATE('10/30/2012 00:00:00', 'MM/DD/YYYYHH24:MI:SS') FROM DUAL ;

- MariaDB  : SELECT STR_TO_DATE('10/30/2012 00:00:00', '%m/%d/%Y %H:%i:%s') ;

6. CAST()

- Oracle 사용방법은 동일함.

CAST('' AS VARCHAR(1)) 사용불가

-> CAST('' AS CHAR) 수정

7. DECODE()

- MariaDB에서는 DECODE는 암호화 예약어로 쓰인다.

- CASE문으로 대체해서 사용해야함.

[출처] [MariaDB] Oracle 함수를 MariaDB 함수로 변경|작성자 꿈의인생

https://blog.naver.com/sensate1024/220439813849

Posted by 짜꾸미의골골몽
|