더 나은 개발자가 되고싶다..

Oracle 시퀀스 export 쿼리 본문

코딩/Oracle

Oracle 시퀀스 export 쿼리

오맹이 2021. 1. 22. 16:03

상위버전 19c 에서 11g로 DB를 복사해야 하는 일이 생겼는데

SQL Developer로 테이블, 뷰, 트리거, 프로스져는 전부 옮겼다.

 

문제는 시퀀스인데 19c에서 시퀀스를 생성하는 쿼리와 11g에서 시퀀스를 생성하는 쿼리가 달라 시퀀스를 익스포스 -> 임포트를 할 수 없었다.

 

SELECT
        'CREATE SEQUENCE ' || sequence_owner || '.' || sequence_name ||
        ' INCREMENT BY ' || increment_by ||
        ' START WITH ' || last_number ||
        ' MAXVALUE ' || max_value ||
        ' MINVALUE ' || min_value ||
        CASE WHEN cycle_flag = 'N' THEN ' NO' ELSE ' ' END || 'CYCLE ' ||
        CASE WHEN cache_size = 0 THEN 'NOCACHE' ELSE 'CACHE ' || cache_size END ||
        CASE WHEN order_flag = 'N' THEN ' NO' ELSE ' ' END || 'ORDER;' ddl_sql
FROM
    dba_sequences
WHERE
    sequence_owner  IN
        (
           'YOUR DB'
        )
ORDER BY
    sequence_owner,
    sequence_name
;

이 쿼리를 돌리면 시퀀스 생성 쿼리가 나온다