안녕하세요.
큐브리드에 대해 알고 계신가요? 큐브리드는 관계형 DBMS로 대용량 데이터 처리 능력 및 성능, 안정성, 가용성, 관리 편의성을 제공하는 국산 RDBMS입니다.
오늘은 이런 큐브리드와 아주 유명한 RDBMS인 오라클 간에 문법 변환을 간단하게 몇 가지 알아보려고 합니다.
1. 단순 문법 변환
큐브리드와 오라클 간에 아래와 같이 변환해서 사용할 수 있습니다.
큐브리드 | 오라클 |
ORDERBY_NUM | ROWNUM |
LIMIT 1 | ROWNUM = 1 |
LIMIT {START}, {END} | OFFSET {START} ROWS FETCH NEXT {END} ROWS ONLY |
SYSDATETIME | SYSDATE |
DIFFERENCE | MINUS |
SELECT 1 FROM DB_ROOT | SELECT 1 FROM DUAL |
GROUP BY {SELECT 절에 있는 것 중 골라서 가능} | GROUP BY {SELECT 절에 사용한 모든 컬럼} |
2. 큐브리드에서 대괄호를 쓰는 경우
큐브리드에서는 몇 가지 단어들에 대괄호를 씌워서 쓰입니다. 그래서 오라클에서 사용할 때는 이 대괄호를 풀어주어야 합니다.
큐브리드 | 오라클 |
[YEAR] | YEAR |
[OPEN] | OPEN |
[STATUS] | STATUS |
[POSITION] | POSITION |
[DATE] | "DATE" (오라클 예약어) |
3. 함수 변환
사용하는 함수도 다르기 때문에 비슷한 함수로 변환해주어야 합니다.
큐브리드 | 오라클 |
FIND_IN_SET | INSTR |
GROUP_CONCAT | LISTAGG |
NVL(조건, BOOLEAN) | NVL(조건, 0 또는 1) |
4. 변환하면서 발생한 애로사항
직접 변환해 보면서 느낀 애로사항 중 하나는 GROUP BY 절이었습니다. 오라클에서 GROUP BY는 SELECT절에 사용한 모든 칼럼을 나열해주어야만 하는데, 큐브리드는 모두 나열하지 않더라도 정상적으로 쿼리가 실행되었습니다. 정확히 어떤 내부 로직으로 동작하는지는 알 수 없으나 같은 결과를 도출해야 하는 상황애서 이 부분을 변환하는데 가장 큰 어려움이 있었습니다.
이외에도 함수가 동일하게 치환되는 게 없기 때문에 많은 수정을 거쳐 쿼리를 변환할 수 있었습니다.
5. 마치며
위 내용들은 제가 SQL 문법을 변경할 때 사용했던 것들만 나열한 것들입니다. 더 많은 내용이 궁금하시면 아래 큐브리드 홈페이지에 오라클 전환 가이드가 있습니다. 이 문서를 다운로드하여서 좀 더 많은 내용을 확인해 볼 수 있습니다.
CUBRID | Oracle 전환 가이드
1. 개요 2. CUBRID 기능 3. 데이터베이스 생성 4. 데이터베이스 이관 5. CUBRID import 6. 이관시 유의사항 7. 이관 전후 정상 이관 확인 방법 8. 스키마 9. 질의 10. 연산자와 함수 11. Stored Procedure (Procedure & Fu
www.cubrid.com
'개발 정보 > 데이터베이스' 카테고리의 다른 글
큐브리드(cubrid)와 오라클(oracle) 데이터타입 매핑 방법 (0) | 2025.04.29 |
---|---|
[큐브리드/CUBRID] 3. 큐브리드 볼륨 복구 방법 (0) | 2023.07.27 |
[큐브리드/CUBRID] 2. 큐브리드 볼륨 용량(공간) 확인 명령어 (0) | 2023.07.26 |
[큐브리드/CUBRID] 1. 큐브리드 볼륨 추가 명령어 (0) | 2023.07.25 |
[오라클][Mybatis] ORA-00926 Missing VALUES keyword 에러 해결방법 (1) | 2023.01.13 |