我按照here的说明从Oracle DB客户端内部连接到PostgreSQL服务器,并在Postgres表上执行查询。
Oracle版本:Oracle Database 12c企业版12.1.0.2.0版 - 64位
Postgres版本: x86_64-unknown-linux-gnu上的PostgreSQL 9.4.4,由gcc编译(Debian 4.7.2-5)4.7.2,64位
我运行像这样的查询时遇到的错误
select * from "myschema.mytable"@PG_LINK
来自Oracle客户端的是:
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
connction string lacks some options {08001,NativeErr = 202}
ORA-02063: preceding 2 lines from PG_LINK
(如果构建这个的开发人员有常识来说明缺少哪些选项以及连接字符串在哪里,而不是说“某些选项”,那会很好!)
我可以使用psql命令从Oracle DB服务器连接到Postgres服务器,因此连接不是问题。
我甚至更新了Postgres服务器上的pg_hba.conf,以便像这样明确访问Oracle服务器:
# added to test Oracle's PG LINK
host all all 10.XX.XXX.XXX/32 md5
# added to test Oracle's PG LINK
host all all 192.XXX.XX.X/32 md5
并重新启动Postgres服务器。 (以10.
开头的地址是内部服务器IP,192.
是Oracle服务器的公共IP。)
我将身份验证从md5
更改为trust
,重新启动了Postgres,重新启动了Oracle侦听器,删除并再次重新创建了DB LINK,但同样的错误正在发生。
答案 0 :(得分:0)
您可以尝试使用unixODBC驱动程序和odbcinst_64 -j
,isql_64
工具。
检查" DRIVERS"以及"用户数据源"文件。
odbcinst_64 -j
DRIVERS ............:/.../ odbcinst.ini
USER DATA SOURCES ..:/ .. / /。odbc.ini
然后isql_64 -v DNS UID PWD
请注意,使用dg4odbc时,您应该使用64位驱动程序。
致以最诚挚的问候,
S上。