【发布时间】:2021-05-03 16:17:55
【问题描述】:
我对以下主题有一个不好的问题:我正在尝试将一些数据从 SQL Server 数据库迁移到 IBM DB2 数据库 (LUW v11.1)。为此,我使用了一个使用 DB2OLEDB 驱动程序的链接服务器。
所以,当我执行下面的语句时
insert into [MyDB].[MyDB76].[SCHEMA].TABLE (DESCRIPTION, ID)
SELECT N'a', ID FROM VW_TABLE
where TABLEID=35
一切正常,但如果我插入特殊字符,请将 "a" 替换为 "à"
insert into [MyDB].[MyDB76].[SCHEMA].TABLE (DESCRIPTION, ID)
SELECT N'à', ID FROM VW_TABLE
where TABLEID=35
出现以下错误信息
链接服务器“MyDB”的 OLE DB 提供程序“DB2OLEDB”返回消息“发生内部网络库错误。发生网络级语法错误。SQLSTATE: HY000, SQLCODE: -379”。 消息 7343,第 16 层,状态 2,第 23 行 链接服务器“MyDB”的 OLE DB 提供程序“DB2OLEDB”无法插入表“[MyDB].[MyDB76].[SCHEMA].[TABLE]”。
我尝试“玩”链接服务器配置参数(请参见下文),但没有成功。
有人知道解决这个问题的技巧吗?
非常感谢
【问题讨论】:
-
sqlcode -379 状态 2,表示分布式事务提交失败,真正的原因将在 Db2 诊断中。您需要与 Db2 DBA 交谈以查看 Db2 诊断程序中的内容。您应该在问题中指定 Db2 服务器(z/os、i 系列、linux/unix/windows/cloud/zlinux)的哪个平台。此外,在这种情况下您为何启用分布式事务也不清楚。
-
谢谢。我正在使用 DB2 LUW v11.1)
-
当 -379 sqlcode 发生时,Db2 诊断中的内容是什么?
-
您是如何创建此链接服务器的,我正在尝试使用“IBM DB2 ODBC 驱动程序 - DB2COPY1”创建此驱动程序,但它显示错误?
-
db2 中该表的模式是什么?
标签: sql sql-server db2 linked-server db2-luw