SQL Server Express 2008 R2 链接服务器到 IBM i (iSeries):查询 return 文本为 0xD4F3F1F7F9F1F0
SQL Server Express 2008 R2 Linked Server to IBM i (iSeries): queries return text as 0xD4F3F1F7F9F1F0
刚刚将 SQL Server 2008 R2 Express 链接到 iSeries,看不到我的文件。我可以查询他们。返回的文本为 0xD4F3F1F7F9F1F0 而不是 M123450 之类的内容(这是工单编号)。使用 IDM DB2 for IBMDA400 OLE DB 提供程序。
我尝试使用适用于其他应用程序的连接字符串。我收到错误:
TITLE: Microsoft SQL Server Management Studio
The linked server has been created but failed a connection test. Do
you want to keep the linked server?
ADDITIONAL INFORMATION:
An exception occurred while executing a Transact-SQL statement or
batch. (Microsoft.SqlServer.ConnectionInfo)
Cannot initialize the data source object of OLE DB provider "IBMDA400"
for linked server "S10A7F0P". (Microsoft SQL Server, Error: 7303)
有人遇到过这样的事情吗?我对整个 SQL 服务器的事情相当陌生。
提前致谢!
男
您的数据返回为 0xD4F3F1F7F9F1F0 的原因是文本列被定义为 CCSID 65535;它代表二进制数据,因此默认情况下 DB 不会将其从 EBCDIC 转换为 ASCII/Unicode.
您可以使用绿屏 DSPFFD 命令或 iNav GUI 查看 table 中各个列的 CCSID。
解决此问题的最佳方法是确保您的文本列使用适合您的语言的 CCSID 进行标记(如果是美国,则为 37)。
另一种方法是使用 OLEDB 驱动程序的 "Force Translate" 属性 强制数据库转换文本列。
刚刚将 SQL Server 2008 R2 Express 链接到 iSeries,看不到我的文件。我可以查询他们。返回的文本为 0xD4F3F1F7F9F1F0 而不是 M123450 之类的内容(这是工单编号)。使用 IDM DB2 for IBMDA400 OLE DB 提供程序。
我尝试使用适用于其他应用程序的连接字符串。我收到错误:
TITLE: Microsoft SQL Server Management Studio
The linked server has been created but failed a connection test. Do you want to keep the linked server?
ADDITIONAL INFORMATION:
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
Cannot initialize the data source object of OLE DB provider "IBMDA400" for linked server "S10A7F0P". (Microsoft SQL Server, Error: 7303)
有人遇到过这样的事情吗?我对整个 SQL 服务器的事情相当陌生。
提前致谢!
男
您的数据返回为 0xD4F3F1F7F9F1F0 的原因是文本列被定义为 CCSID 65535;它代表二进制数据,因此默认情况下 DB 不会将其从 EBCDIC 转换为 ASCII/Unicode.
您可以使用绿屏 DSPFFD 命令或 iNav GUI 查看 table 中各个列的 CCSID。
解决此问题的最佳方法是确保您的文本列使用适合您的语言的 CCSID 进行标记(如果是美国,则为 37)。
另一种方法是使用 OLEDB 驱动程序的 "Force Translate" 属性 强制数据库转换文本列。