오라클의 동의어 전환 정보

2045 단어 오라클SQL
한 앱에서 Oracle 테이블을 참조하고 참조 테이블을 세탁으로 업데이트하려는 경우,
동의어를 사용하면 앱에 영향을 미치지 않도록 업데이트가 가능합니다.

예를 들면, 하기의 그림과 같은 구성의 경우를 상정.



현재 동의어 확인


SELECT * FROM ALL_SYNONYMS
WHERE SYNONYM_NAME = 'HOGE_TABLE';

+----------------+---------------+----------------+---------------+-----------+
| OWNER          | SYNONYM_NAME  | TABLE_OWNER    | TABLE_NAME    | DB_LINK   |
+----------------+---------------+----------------+---------------+-----------+
| SAMPLE_SCHEMA  | HOGE_TABLE    | SAMPLE_SCHEMA  | HOGE_TABLE_1  | (null)    |
+----------------+---------------+----------------+---------------+-----------+

동의어에서 참조되지 않은 대기 쪽 테이블을 세척


TRUNCATE TABLE SAMPLE_SCHEMA.HOGE_TABLE_2;

INSERT INTO SAMPLE_SCHEMA.HOGE_TABLE_2
SELECT * FROM SAMPLE_SCHEMA.SOURCE_TABLE;



동의어 전환


CREATE OR REPLACE SYNONYM SAMPLE_SCHEMA.HOGE_TABLE
FOR SAMPLE_SCHEMA.HOGE_TABLE_2;



전환 후 동의어 확인


SELECT * FROM ALL_SYNONYMS
WHERE SYNONYM_NAME = 'HOGE_TABLE';

+----------------+---------------+----------------+---------------+-----------+
| OWNER          | SYNONYM_NAME  | TABLE_OWNER    | TABLE_NAME    | DB_LINK   |
+----------------+---------------+----------------+---------------+-----------+
| SAMPLE_SCHEMA  | HOGE_TABLE    | SAMPLE_SCHEMA  | HOGE_TABLE_2  | (null)    |
+----------------+---------------+----------------+---------------+-----------+

좋은 웹페이지 즐겨찾기