본문 바로가기
데이터베이스/Postgresql

[PostgreSQL] postgresql db_link 설정

by cbwstar 2021. 8. 13.
728x90
반응형

/* DB LINK 사용하기 위해서는 DB LINK EXTENSION 설치를 먼저 해야 한다. 스키마 지정은 하나만 할수 있어서 필요한 스키마에 설치후 다른 스키마에서 사용할 경우는 ALTER 명령어로 스키마를 변경해 줘야 한다. */
/* DB LINK EXTENSION 설치 */
/* 1.EXTENSION 신규 생성 */
CREATE EXTENSION IF NOT EXISTS dblink SCHEMA test;

/* 2.EXTENSION 스키마 변경 */
ALTER EXTENSION dblink SET SCHEMA public;

/* 3.EXTENSION 삭제 */
DROP EXTENSION dblink;

/* 4. dblink_connect 원격접속 세션 연결 */
SELECT dblink_connect('postgres', 'hostaddr=192.168.1.26 port=5432 dbname=naqs user=user password=pwd');

/*5. 원격데이터 쿼리 조회 (필드명1 필드타입,필드명2 필드타입 ..반환되는 필드타입을 지정해 줘야 한다.)*/
SELECT * FROM dblink('postgres', 'SELECT * FROM tn_sys_mssage_l') AS tdname (fild1 varchar(40),
              fild2 varchar(400),fild3 varchar(400),fild4 varchar(400),fild5 varchar(400),fild6 timestamp,fild7 varchar(400),fild8 timestamp  ) 
   WHERE fild1 like 'msg.err%'

/*6.연결한 원격 db종료 */ 
Select dblink_disconnect('postgres');

 

/*7. postgresql dblink 조인 */
SELECT * 
FROM   tn_sys_mssage_l tb1 
LEFT   JOIN (
   SELECT * FROM dblink('postgres', 'SELECT * FROM tn_sys_mssage_l') AS tdname (fild1 varchar(40),
              fild2 varchar(400),fild3 varchar(400),fild4 varchar(400),fild5 varchar(400),fild6 timestamp,fild7 varchar(400),fild8 timestamp  ) 
) AS tb2 ON tb2.fild1 = tb1.fild1 ;

728x90
반응형

댓글



"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading