문서유형ㅣ장애해결
분야ㅣ인터페이스/연동
적용제품버전ㅣ7FS02PS
문서번호ㅣTIITS018
현상
Oracle 에서 DB Link를 이용하여 Tibero의 Sequence 호출 시, ORA-02070 에러가 발생합니다.
SQL> select test_seq.nextval@ott from dual;
select test_seq.nextval@ott from dual
*
ERROR at line 1:
ORA-02070: database OTT does not support sequence references in this context
원인
Oracle Gateway의 미 지원 사항으로서 직접 호출이 불가능하여 오류가 발생합니다.
따라서, Function 및 View를 통해 우회하여 조회하도록 합니다.
해결
1. Sequence 조회하는 Function 생성
Tibero에 Sequence를 조회하는 Function을 생성합니다.
-- #현재 seqeunce 값을 조회하는 function 생성 CREATE OR REPLACE FUNCTION TIBERO.FN_GET_SEQ_CURRENT RETURN number AS v_current number; BEGIN select test_seq.currval into v_current from dual; RETURN v_current; END; -- #다음 sequence 값을 조회하는 function 생성 CREATE or REPLACE FUNCTION TIBERO.FN_GET_SEQ_NEXTVAL RETURN number AS v_nextval number; BEGIN select test_seq.nextval into v_nextval from dual; RETURN v_nextval; END;
2. Function 조회하는 View 생성
Tibero에서 Sequence 값을 조회하는 Function을 호출하는 View를 생성합니다.
-- #현재 seqeunce 값을 조회하는 function을 호출하는 view 생성 CREATE OR REPLACE FORCE VIEW tibero.SEQ_VIEW_CURRENT (SEQ_CURRENTVAL) AS select tibero.FN_GET_SEQ_CURRENT() as seq_currentval from dual; -- #다음 sequence 값을 조회하는 function을 호출하는 view 생성 CREATE OR REPLACE FORCE VIEW tibero.SEQ_VIEW_NEXTVAL (SEQ_NEXTVAL) AS select tibero.FN_GET_SEQ_NEXTVAL() as seq_nextval from dual;
참고
View를 정의하는 Subquery의 결과 Column 으로 Sequence를 사용할 수 없기 때문에 Tibero에 Sequence를 조회하는 View를 직접 생성하지 않습니다.
Tibero_7_SQL-Reference-Guide_v7.2.3 메뉴얼의 create view(page 604) 참조 부탁 드립니다.
3. Tibero의 View를 DB Link로 이용하여 조회
Tibero에 생성해 놓은 View를 DB Link로 이용하여 조회합니다.
-- #DB Link 조회 SQL> select * from dba_db_links where db_link = 'OTT'; OWNER DB_LINK USERNAME HOST CREATED HIDDEN SHARD_INT VALID INTRA_CDB -------------------- -------------------- -------------------- -------------------- ------------------ --------- --------- --------- --------- SYS OTT TIBERO tiero7 31-OCT-25 NO NO YES NO -- #nextval 조회 SQL> select * from SEQ_VIEW_NEXTVAL@ott; SEQ_NEXTVAL ----------- 3 -- #currval 조회 SQL> select * from SEQ_VIEW_CURRENT@ott; SEQ_CURRENTVAL -------------- 3