我正在OdbcConnection
使用 C# 连接到 DB2 数据库。我正在连接、进行查询等,一切都很顺利,直到我查询数据类型为 XML 的字段。我收到一条错误消息Unknown SQL type - -370
。我发现 .NET ODBC 驱动程序对 LOB 字段(此处)的限制,但错误代码是 -98 (LOB)、-99 (CLOB) 和 -350 (DBCLOB)。有一个解决方法建议我添加LONGDATACOMPAT=1
到我的连接字符串中,但这不适用于 -370。有谁知道我怎样才能解决这个问题?
问问题
1148 次
2 回答
1
在XMLSERIALIZE
查询和LONGDATACOMPAT=1
连接字符串中(如上所述),我能够从使用 CLOB 数据类型的字段中获取大型 (>100KB) XML。像这样的东西对我有用:
var command = connection.CreateCommand();
command.CommandType = CommandType.Text;
command.CommandText =
"SELECT XMLSERIALIZE(xmlfield AS CLOB(10M)) AS xmlfield FROM [table] WHERE [condition]";
using (command)
{
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
var foo = !reader.IsDBNull(0) ? reader.GetString(0) : null;
//do stuff...
}
}
}
我已将最大 CLOB 大小设置为 10 兆字节,这对我的项目来说是一个安全的上限。有关更多信息,请参阅IBM 关于 XMLSERIALIZE 的页面。
于 2021-07-08T04:05:46.717 回答
-1
mustaccio 的链接(此处)提供了解决方案。
于 2013-10-18T08:53:35.263 回答