Oracle에서 Tibero로의 DBLink 사용 시 제약이 있을 수 있는 사항들에 대해 우회하여 처리할 수
있는 방안을 안내합니다.
Oracle에서 Tibero sequence 값 호출
Oracle to Tibero Link 를 사용한 sequence 호출 시 제약이 있을 경우 아래와 같은 우회 방안을
안내합니다.
1. Tibero 에 sequence 에 대한 function을 생성합니다.
2. 해당 function 을 view 로 생성합니다.
3. 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;
|
Oracle에서 Tibero update 시 형 변환
Oracle to Tibero Link 를 사용해 Tibero에 형 변환 후 update 시 제약이 있을 경우 아래와 같은 우회 방안을 안내합니다.
Note!
본 문서에서는 PL/SQL 형태로 바꾸어 변형된 값을 인자로 받아 수행했습니다.
|
-- 테스트 테이블 생성
CREATE TABLE T3_TIB (DT_CD VARCHAR(20), DT_STAMP VARCHAR(20) ,DT DATE);
INSERT INTO T3_TIB VALUES ('1','20201300', SYSDATE);
INSERT INTO T3_TIB VALUES ('1','20201400', SYSDATE);
INSERT INTO T3_TIB VALUES ('0','20201500', SYSDATE);
INSERT INTO T3_TIB VALUES ('1','20201600', SYSDATE);
|
--우회 전 쿼리
UPDATE T3_TIB@OT_0627
SET DT_STAMP = TO_CHAR(SYSDATE,'YYYYMMDD')
,DT = SYSDATE
WHERE DT_CD='1';
|
--우회 후 쿼리
DECLARE
D1 CHAR(8);
D2 DATE;
BEGIN
SELECT TO_CHAR(SYSDATE,'YYYYMMDD') INTO D1 FROM DUAL;
SELECT SYSDATE INTO D2 FROM DUAL;
UPDATE T3_TIB@OT_0627
SET DT_STAMP = D1
,DT = D2
WHERE DT_CD='1';
COMMIT;
END;
/
|
'인터페이스, 연동' 카테고리의 다른 글
[Tibero] DBLINK 우회방안_Oracle to Tibero (3) (0) | 2023.08.16 |
---|---|
[Tibero] DBLINK 우회방안_Oracle to Tibero (2) (0) | 2023.08.16 |
[Tibero] DBLINK 설정_Tibero to PostgreSQL (4) (0) | 2023.07.31 |
[Tibero] DBLINK 설정_Tibero to PostgreSQL (3) (0) | 2023.07.31 |
[Tibero] DBLINK 설정_Tibero to PostgreSQL (2) (0) | 2023.07.31 |