Problem loading data from jena
725104 Oct 1, 2009 11:53 AMHi, two issues when loading data into Oracle from a jena model:
1. The incremental and batch load both works well except when we add a triple with a literal types as double:
...
triple = new Triple(dirNode.asNode(), Node.createURI("http://www.w3.org/2003/01/geo/wgs84_pos#long"), Node.createLiteral(geopos.getLongitude().toString(), null, (RDFDatatype) XSDDatatype.XSDdouble));
graph.add(triple);
We get the error:
GRAVE: Could not add triple
java.sql.BatchUpdateException: ORA-55303: Fallo en el constructor SDO_RDF_TRIPLE_S: Simple case: SQLERRM=ORA-55328: fallo al intentar insertar el valor literal "-5.9278863"^^<http://www.w3.org/2001/XMLSchema#double>
ORA-06512: en "MDSYS.MD", línea 1723
ORA-06512: en "MDSYS.MDERR", línea 17
ORA-06512: en "MDSYS.SDO_RDF_TRIPLE_S", línea 211
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1335)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3449)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3530)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1062)
........
2. The bulk load simply does not work:
((OracleBulkUpdateHandler) graph.getBulkUpdateHandler()).addInBulk(GraphUtil.findAll(model.getGraph()), "sem_ts");
We get:
01-oct-2009 13:11:39 oracle.spatial.rdf.client.jena.SimpleLog warn
ADVERTENCIA: addInBulk: [92 ] sqle
java.sql.SQLException: ORA-44004: nombre de SQL cualificado no válido
ORA-06512: en "SYS.DBMS_ASSERT", línea 188
ORA-06512: en "MDSYS.SDO_RDF", línea 242
ORA-06512: en "MDSYS.RDF_APIS", línea 693
ORA-06512: en línea 1
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802)
...........
In both case our conexion is something like:
public static String conexion = "jdbc:oracle:thin:user/pass@ourserver:1521:ourdb";
Any idea? Thanks
1. The incremental and batch load both works well except when we add a triple with a literal types as double:
...
triple = new Triple(dirNode.asNode(), Node.createURI("http://www.w3.org/2003/01/geo/wgs84_pos#long"), Node.createLiteral(geopos.getLongitude().toString(), null, (RDFDatatype) XSDDatatype.XSDdouble));
graph.add(triple);
We get the error:
GRAVE: Could not add triple
java.sql.BatchUpdateException: ORA-55303: Fallo en el constructor SDO_RDF_TRIPLE_S: Simple case: SQLERRM=ORA-55328: fallo al intentar insertar el valor literal "-5.9278863"^^<http://www.w3.org/2001/XMLSchema#double>
ORA-06512: en "MDSYS.MD", línea 1723
ORA-06512: en "MDSYS.MDERR", línea 17
ORA-06512: en "MDSYS.SDO_RDF_TRIPLE_S", línea 211
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1335)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3449)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3530)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1062)
........
2. The bulk load simply does not work:
((OracleBulkUpdateHandler) graph.getBulkUpdateHandler()).addInBulk(GraphUtil.findAll(model.getGraph()), "sem_ts");
We get:
01-oct-2009 13:11:39 oracle.spatial.rdf.client.jena.SimpleLog warn
ADVERTENCIA: addInBulk: [92 ] sqle
java.sql.SQLException: ORA-44004: nombre de SQL cualificado no válido
ORA-06512: en "SYS.DBMS_ASSERT", línea 188
ORA-06512: en "MDSYS.SDO_RDF", línea 242
ORA-06512: en "MDSYS.RDF_APIS", línea 693
ORA-06512: en línea 1
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802)
...........
In both case our conexion is something like:
public static String conexion = "jdbc:oracle:thin:user/pass@ourserver:1521:ourdb";
Any idea? Thanks