개요
Oracle에서 Tibero로의 DBLink를 사용해 sequence 호출 시 제약이 있을 경우 적용할 수 있는 우회 방안을 안내합니다.
방법
1. Function 생성
Tibero에 sequence 에 대한 function을 view로 생성합니다.
2, View 호출 및 사용 형태 적용
Oracle to Tibero Link 시 sequence가 아닌 view 를 호출하여 사용하는 형태로 변형합니다.
-- 테스트 시퀀스 생성
CREATE SEQUENCE SEQ_TEST_0627 –시퀀스이름 EX_SEQ
INCREMENT BY 1 –증감숫자 1
START WITH 1 –시작숫자 1
MINVALUE 1 –최소값 1
MAXVALUE 1000 –최대값 1000
NOCYCLE –순환하지않음
noCACHE;
-- 테스트 테이블 생성
CREATE TABLE T2_TIB (SEQ NUMBER, TEXT VARCHAR(20));
INSERT INTO T2_TIB VALUES (SEQ_TEST_0627.NEXTVAL,’테스트’);
-- 우회 전 쿼리
SELECT SEQ.NEXTVAL@OT_0627 AS SEQ_TIB,
‘TEXT’ AS TEXT_TIB
FROM DUAL;
-- 우회 후 쿼리
-- 시퀀스 호출 함수 생성
CREATE OR REPLACE FUNCTION SEQ_TEST_0627_FUNC RETURN NUMBER
IS V_NEXTVAL NUMBER;
BEGIN
SELECT SEQ_TEST_0627.NEXTVAL INTO V_NEXTVAL FROM DUAL;
RETURN V_NEXTVAL;
END SEQ_TEST_0627_FUNC;
-- 함수 호출 VIEW를 생성
CREATE OR REPLACE VIEW SEQ_TEST_0627_VIEW AS
SELECT SEQ_TEST_0627_FUNC AS NEXTVAL FROM DUAL;
SELECT
(SELECT NEXTVAL FROM SEQ_TEST_0627_VIEW@OT_0627) AS SEQ_TIB,
‘TEXT’ AS TEXT_TIB
FROM DUAL;
SQL
복사