【问题标题】:Inserting XML into SQL Server 2008将 XML 插入 SQL Server 2008
【发布时间】:2014-07-30 04:51:42
【问题描述】:

我在将 XML 插入 SQL Server 2008 时遇到问题。我的 Java 应用程序创建了一个 XML 并尝试将其插入到 SQL Server 2008 下的“XML”类型的列中。

报错

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: XML parsing: line 1, character 39, unable to switch the encoding
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1493)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:390)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:340)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:179)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:154)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(SQLServerPreparedStatement.java:322)

这是 XML 声明

<?xml version="1.0" encoding="UTF-16" standalone="yes"?>

我不确定 SQL Server 2008 期望哪种 XML 编码可以正常工作。

谁能建议我应该如何解决这个问题?

【问题讨论】:

  • 您是如何尝试准确插入 XML 的?尝试将 XML 内容作为 nvarchar 传递
  • 我们正在使用 JDBC 将 XML 插入到具有 dat 类型 XML 列的表中

标签: java sql xml sql-server-2008 encoding


【解决方案1】:

尝试将编码更改为“UTF-8”。 以下是 Microsoft 网站上的示例链接:

http://msdn.microsoft.com/en-au/library/ms191184.aspx

【讨论】:

  • 所以您的意思是,对于 XML 类型的列,XML 应该是 UTF-8 编码的?
猜你喜欢
  • 1970-01-01
  • 2011-05-22
  • 1970-01-01
  • 2019-05-09
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 1970-01-01
  • 2011-05-06
相关资源
最近更新 更多