注册

达梦DM8如何与Postgres12通过dblink互访

三锅头 2023/02/27 1023 5

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:CentOS7.9
【CPU】:Intel E5-2680
【需求】在达梦DM8数据库中以dblink方式查询PostgreSQL12.8数据库中的表
【问题】通过odbc已能正常调用PG12数据库,但是进入到达梦数据库中报错:
Can’t match object[sy_user] in dblink remote server,err detail[Unrecognized return value from copy_and_convert_field.].

ODBC配置如下:
[dmdba@dmdb ~]$ cat /etc/odbc.ini
[MCDB]
Description=MCDB
Driver=PostgreSQL
Trace=Yes
TraceFile=sql.log
Database=n2zh
Servername=192.168.5.12
UserName=n2admin
Password=N2ADMIN
Port=5432
Protocol=12.8
ReadOnly=No
RowVersioning=No
ShowSystemTables=No
ShowOidColumn=No
FakeOidIndex=No
[dmdba@dmdb ~]$ cat /etc/odbc
odbc.ini odbcinst.ini
[dmdba@dmdb ~]$ cat /etc/odbcinst.ini
[PostgreSQL]
Description=PostgreSQL driver for Linux
Driver=/usr/local/psqlodbc/lib/psqlodbcw.so
Setup=/usr/lib64/libodbcpsqlS.so
Driver64=/usr/local/psqlodbc/lib/psqlodbcw.so
Setup64=/usr/lib64/libodbcpsqlS.so
ConnSettings = set client_encoding to UTF8
FileUsage = 1

使用ODBC的isql能够正常查询数据
[dmdba@dmdb ~]$ isql -v MCDB
±--------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
±--------------------------------------+
SQL> select count(*) from sy_user;
±--------------------+
| count |
±--------------------+
| 272 |
±--------------------+
SQLRowCount returns 1
1 rows fetched
SQL> exit

使用达梦数据库,无法正常查询数据
[dmdba@dmdb ~]$ disql mcadmin/*************

Server[LOCALHOST:5236]:mode is normal, state is open
login used time : 4.751(ms)
disql V8
SQL> CREATE LINK dblink_pg CONNECT ‘ODBC’ WITH “n2admin” IDENTIFIED BY “N2ADMIN” USING ‘MCDB’;
executed successfully
used time: 12.904(ms). Execute id is 3611200.
SQL> select count() from “sy_user”@dblink_pg;
select count(
) from “sy_user”@dblink_pg;
[-2256]:Error in line: 1
Can’t match object[sy_user] in dblink remote server,err detail[Error while executing the query].
used time: 114.269(ms). Execute id is 0.
SQL>

报错信息如上。识别不了PG端的表

回答 0
暂无回答
扫一扫
联系客服