Intenté usar OracleWebRowset para exportar e importar objetos ResultSet .
consulte " https://docs.oracle.com/cd/B28359_01/java.111/b31224/jcrowset.htm#BABCFJBE "
OracleWebRowSet rs = new OracleWebRowSet(); System.setProperty("javax.xml.parsers.SAXParserFactory","oracle.xml.jaxp.JXSAXParserFactory"); FileReader fReader = new FileReader("xmlfile.xml"); rs.readXml(fReader); rs.acceptChanges(); rs.close();Esto plantea el error:
java.lang.ClassCastException: oracle.jdbc.rowset.OracleWebRowSet cannot be cast to com.sun.rowset.CachedRowSetImpl at com.sun.rowset.internal.CachedRowSetWriter.writeData(CachedRowSetWriter.java:275) at oracle.jdbc.rowset.OracleCachedRowSet.acceptChanges(OracleCachedRowSet.java:1776) Intenté lanzar el WebRowSetImpl() básico sin éxito
la razón por la que no pude usar el WebRowSet básico es porque las columnas Oracle NVARCHAR2 plantean problemas al escribir y leer XML, generaron errores como "no se pueden formar declaraciones de inserción" y "no es un tipo adecuado"
¿Hay algún trabajo alrededor?
Encontré una solución...
Parece que el escritor y el lector del conjunto de filas no están configurados correctamente en la clase base OracleCachedRowSet de OracleWebRowSet
Entonces, para solucionar el problema, incluya dos líneas de código antes de llamar al método acceptchanges()
rs.setReader(new OracleCachedRowSetReader()); rs.setWriter(new OracleCachedRowSetWriter());Entonces el código fijo se vería así:
OracleWebRowSet rs = new OracleWebRowSet(); System.setProperty("javax.xml.parsers.SAXParserFactory","oracle.xml.jaxp.JXSAXParserFactory"); FileReader fReader = new FileReader("xmlfile.xml"); rs.readXml(fReader); rs.setReader(new OracleCachedRowSetReader()); rs.setWriter(new OracleCachedRowSetWriter()); rs.acceptChanges(); rs.close();