我们的产品有两个相同的设置。一种设置工作正常,但另一种设置遇到以下问题。
我们正在对数据库进行查询,查询如下:
String query = select col1_name, col2_name, col3_name from table_1;
PreparedStatement l_statement = null;
Connection con = "<connection-string>";
l_statement = con.prepareStatement(query);
Resultset l_rs = l_statement.executeQuery();
现在 col1("column1") 数据类型是“SYS.XMLTYPE”,获取列数据的代码是:
Object obj = null;
obj = l_rs.getObject(1);
String xmlStr = null;
if(obj instanceof XMLTYPE){
...
} lse if (obj instanceof XMLTYPE){
...
} else if (obj instanceof java.sql.SQLXML){
xmlStr = ((SQLXML)obj).getString ();
}
程序的控制进入最后一个else if,即
xmlStr = ((SQLXML)obj).getString ();
现在,当我们检查 xmlStr 的值时,它包含垃圾字符:
Ÿcž(too many junk characters.)
在一个设置中,这段代码可以正常工作,而在另一个设置中,xml 字符串会给出垃圾字符,这可能是什么原因?