<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Oracle dblink的底層是通過ODBC連線PostgreSQL執行SQL的,需安裝unixODBC和PostgreSQL ODBC驅動(它們的組態檔是:odbcinst.ini和odbc.ini),還需設定Oracle網路使用這個驅動。以下操作都是在Oracle伺服器上進行:
以root使用者安裝unixODBC:
yum install unixODBC unixODBC-devel.x86_64
unixODBC相當於Linux中管理所有資料庫ODBC驅動的管理器。
以root使用者安裝PostgreSQL ODBC驅動
編譯安裝,以root執行:
yum install libpq5-devel.x86_64 wget https://ftp.postgresql.org/pub/odbc/versions/src/psqlodbc-12.02.0000.tar.gz tar xf psqlodbc-12.02.0000.tar.gz cd psqlodbc-12.02.0000 ./configure make make install
預設安裝到/user/local/lib
設定odbcinst.ini和odbc.ini,以root使用者執行:
vim /etc/odbcinst.ini(不區分大小寫)
/usr/local/lib/psqlodbcw.so 是PostgreSQL ODBC驅動的庫。
/usr/lib64/libodbcpsqlS.so 是unixODBC的庫。
vim /etc/odbc.ini
這裡Driver應與odbcinst.ini中的[PostgreSQL]對應,可以取任何名字,但兩者需要相同。其它引數視具體PostgreSQL伺服器而定。[PG]是一個連線PostgreSQL的設定名稱,其它應用程式(如Oracle)就是參照這個名稱存取PostgreSQL。
測試一下這個ODBC連線能否工作:
設定Oracle網路,以oracle使用者執行,涉及3個Oracle組態檔的修改:
$ORACLEHOME/network/admin/listener.ora $ORACLEHOME/hs/admin/init<SID_NAME>.ora $ORACLEHOME/network/admin/tnsnames.ora
1)在listener.ora中,增加一項設定(紅圈部分),它代表PostgreSQL提供的資料庫服務,Oracle將PostgreSQL也看成一個Oracle範例,SID_NAME = PGINSTANCE是給它定義一個範例名,這個名稱任意,但是這個名稱決定了第二個組態檔$ORACLEHOME/hs/admin/init<SID_NAME>.ora的檔名,例如initPGINSTANCE.ora。
2)$ORACLEHOME/hs/admin/init<SID_NAME>.ora
範例PGINSTANCE連線PostgreSQL資料庫時,Oracle會到$ORACLEHOME/hs/admin/下找名為initPGINSTANCE.ora的組態檔,裡面是關於ODBC連線的資訊,Oracle使用這些資訊連線PostgreSQL,例如,在我的環境中,這個檔案內容如下:
HS_FDS_CONNECT_INFO = PG 這個引數指向odbc.ini檔案中的ODBC連線名稱[PG],參考前面。HS_FDS_SHAREABLE_NAME =/usr/local/lib/psqlodbcw.so 這個引數設定PostgreSQL ODBC驅動的路徑,與odbcinst.ini中Driver64相同。
如果PostgreSQL的字元編碼是UTF8,那麼下面兩個引數應該這樣設定:
HS_NLS_NCHAR=UCS2 HS_LANGUAGE=AMERICAN_AMERICA.AL32UTF8
3)在tnsnames.ora中,增加一項(紅圈):
pglink是使用者端到PostgreSQL範例的連線設定,只要注意一點:“SID = PGINSTANCE”中,SID應設定為listener.ora中PostgreSQL的範例名,例如這裡就是PGINSTANCE。pglink這個名稱,將在建立dblink時使用。
建立dblink
在sqlplus或其它終端執行
create database link dl_pgsql connect to "postgres" identified by "post123" using 'pglink';
其中'pglink'是tnsnames.ora檔案裡定義的,這裡把Oracle資料庫作為使用者端,去連線pglink所指的範例。
"postgres" identified by "post123" 是指PostgreSQL中的使用者。
這各名稱為dl_pgsql的dblink所連線的PostgreSQL資料庫名由odbc.ini的Database引數指定。postgres使用者應該對Database所指的資料庫,有足夠存取許可權。
通過dblink存取PostgreSQL
假設emp表在名為postgres的資料庫中的名為public的schema下,Oracle完成上面的設定後,可以這樣存取:
select * from "public"."emp"@dl_pgsql;
建立和使用別名
CREATE SYNONYM emp_table FOR "public"."emp"@dl_pgsql; select * from emp_table;
到此這篇關於Oracle設定dblink存取PostgreSQL的文章就介紹到這了,更多相關Oracle dblink存取PostgreSQL內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45