데이터베이스

Total 205
Today 0
profile_image
슈퍼아이피
14-09-19 09:57 0개 659회
MSSQL
Connect to PostgreSQL on SQL Server via ODBC or OLEDB
/****************************************************************************************************************
-- Title : [SQL] Connect to PostgreSQL on SQL Server via ODBC or OLEDB
-- Reference : blog.slalom.com
-- Key word : sql server postgresql connect linked server odbc linked_server pgnp msdasql
****************************************************************************************************************/

-- 1. creating table on postgresql

drop table tbl_addr;


create table tbl_addr

( seq serial not null

, name varchar(50)

, city varchar(20)

, ctry varchar(20)

);


insert into public.tbl_addr (name, city, ctry)

values ('hayden', 'koisan', 'korea')

, ('jason', 'suwon', 'korea')

, ('subi', 'seosan', 'korea')

, ('joyce', 'Pasig', 'phillippine')

, ('nicole', 'newyork', 'usa');

select * from public.tbl_addr;




-- 2. Installation of drivers(32-bit & 64-bit)
o Download the latest .msi file for Windows from this location: http://www.postgresql.org/ftp/odbc/versions/msi/
o Execute downloaded .msi file.


-- 3. Setting ODBC
101.png

o click management tool

102.png

o click data provider(ODBC)

103.png

o click add button

104.png

o select PostgreSQL Unicode

105.png

o fill out this form like above and click test button

106.png

o see that message box

107.png


o confirm added odbc source(PGSQLODBC)
o click ok button


-- 4. add linked server on sql server

201.png

o click right button and new linked server

202.png

o fill in the form like above on general page

203.png

o input account and password on security page

204.png

o change RPC and export RPC to TRUE on server option page

o confirm added linked server and tables


-- 5. checking MSDASQL

301.png

o be sure to check "Allow Inprecess"


-- 6. testing connection to Postgresql on SQL Server
-- if possible, use upper case to linked server name.

-- via 4-partname

-- error occurred. I don't know why not.

select *

from LINKED_PGSQL...tbl_addr;


insert into LINKED_PGSQL...tbl_addr.postgres.publick.tbl_addr (name, city, ctry)

values ('tom', 'london', 'england');



-- via openquery

select *

from openquery(LINKED_PGSQL, 'select * from public.tbl_addr');



-- via execute(exec) at

execute('select * from tbl_addr where ctry = ?', 'korea') at LINKED_PGSQL;


execute('insert into tbl_addr (name, city, ctry) values (?, ?, ?)', 'tom', 'london', 'england')

at LINKED_PGSQL;




-- ref.Using PGNP which is commercial product via OLEDB
http://www.pgoledb.com/

추천 0 비추천 0

댓글목록

등록된 댓글이 없습니다.