当我尝试向Oracle数据库中插入一些数据时出现错误:
Caused by: Error : 2000, Position : 24, Sql = INSERT INTO XMLTABLE (ID, DOC) VALUES (:1 , :2 ), OriginalSql = INSERT INTO XMLTABLE (ID, DOC) VALUES (?, ?), Error Msg = ORA-02000: missing COLUMNS keyword
我的简单代码:
PreparedStatement stmt = null;
try {
stmt = conn.prepareStatement("INSERT INTO XMLTABLE (ID, DOC) VALUES (?, ?)");
String xml = "<record>\n" +
" <name>John</name>\n" +
" <marks>5</marks>\n" +
"</record>";
SQLXML sqlxml = conn.createSQLXML();
sqlxml.setString(xml);
stmt.setInt(1,5);
stmt.setSQLXML(2, sqlxml);
stmt.executeUpdate();
} finally {
if (stmt != null) { stmt.close(); }
}
我的简单数据库:
CREATE TABLE XMLTABLE (
id NUMBER(4),
doc XMLTYPE
);
在stmt.executeUpdate()
函数期间发生错误,但我认为问题出在stmt.setSQLXML(2, sqlxml)
函数中。我使用ojdbc8驱动程序。
当我在此项目中使用SQLXML sqlxml = rs.getSQLXML(1)
时,它将起作用。我已经拥有所有必需的库,例如xmlparserv2.jar
和xdb.jar
。