코딩 연습장/데이터베이스(DB)

[Oracle] Mysql에서 Oracle로 쿼리문 변경하기

Do아 2022. 7. 4. 15:22
728x90

2022/04/14(목)

 

 

 

 

 

 

 

  Mysql에서 Oracle로 쿼리문 변경이유

회사에서 프로젝트를 하는데 Mysql의 쿼리문을 Oracle 쿼리문으로 변경해야하는 업무를 하게 됐다.

빨리 변경을 하기 위해 방법을 찾다가 프로그램을 먼저 돌려서 한번 바꾸고 그 이후에는 쿼리문을 따로 돌려보면서 오류를 잡는 방식으로 변경했다.

 

 

 

 

 

  사용한 프로그램

http://www.sqlines.com/online

 

SQLines - Online SQL Conversion - SQL Scripts, DDL, Queries, Views, Stored Procedures, Triggers

 

www.sqlines.com

 

 

 

 

  사용 방법

- 왼쪽창에 변경하고자 하는 쿼리문을 넣고 위에 select 창에서 해당하는 DB를 선택

- 오른쪽이 고치고 싶은 DB를 선택하고 convert버튼을 클릭하면 변환 해준다.

 

 

 

 

  왼쪽이 Mysql, 오른쪽이 Oracle

1. IFNULL --> NVL로 변경된다.

컬럼의 값이 0일 때 대체되는 함수

 

2. DATE_FORMAT --> TO_CHAR

yyyy/mm/dd와 같이 날짜 형식 수정해주는 함수

 

3. LIMIT --> ROWNUM

페이징 처리를 할 때 사용

 

 

 

 

 

  번외

페이징 처리를 할 때 ROWNUM을 사용했는데 ROW_NUMBER()를 사용해서 할수도 있다.

찾아보니 ROW_NUMBER()를 사용해서 하는 거보다 ROWNUM을 사용하는게 속도가 더 빠르다.

ROWNUM을 사용하면서 인덱스를 적용하면 더 빠르다고 한다.

 

SELECT * FROM(

SELECT

ROWNUM AS RNUM,

T.*

FROM TABLE_NAME

) T

WHERE ROWNUM <= startPage

WHERE RNUM >= endPage;

 

 

 

 

 

 

 

 

 

 

 

728x90