개요
Oracle에서 Tibero로의 DBLink에서 Tibero의 함수 호출 시 제약이 있을 경우 아래와 같은 우회 방안을 안내합니다.
참고
Oracle에서 Tibero 의 view를 조회하면 LINK의 LINK 를 거쳐 결과 값이 나오도록 우회했습니다.
Tibero는 view 생성 시 varchar2의 경우 최대 크기(65536)로 할당되어 Oracle 쪽에서 LONG 타입으로 인식됩니다. view 생성 시 CAST 함수로 컬럼 길이를 제한하는 방법으로 우회 가능합니다.
방법
Tibero에 Oracle의 컬럼을 select 할 수 있는 view를 생성합니다.
테스트 함수 생성
CREATE OR REPLACE FUNCTION FN_T5_TEST RETURN NUMBER
IS
V_NUMBER NUMBER;
BEGIN
SELECT FUNC_NO INTO V_NUMBER FROM T1_TIB;
RETURN V_NUMBER;
END;
/
DROP FUNCTION FN_T5_TEST
CREATE OR REPLACE FUNCTION FN_T5_TEST_2 RETURN VARCHAR2
IS
V_TEXT VARCHAR2(20);
BEGIN
SELECT ‘ORACLE’ INTO V_TEXT FROM DUAL;
RETURN V_TEXT;
END;
/
SQL
복사
우회 전 쿼리
SELECT FN_T5_TEST AS NUM, FN_T5_TEST_2 AS TEXT FROM DUAL@OT_0627;
SQL
복사
우회 후 쿼리
CREATE OR REPLACE VIEW VW_T5_TEST AS
SELECT FN_T5_TEST AS NUM , cast(FN_T5_TEST_2 as varchar(20)) AS TEXT FROM DUAL;
select *
from t4_ora
where ORA_TEST_TEXT in (SELECT text FROM VW_T5_TEST@OT_0627);
SQL
복사