【发布时间】: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