3 Replies Latest reply on Aug 5, 2011 12:30 AM by 880418

    ORA-00955: name is already used by an existing object at  "MDSYS.SDO_RDF_IN

    jerven
      Hi All,

      While using the java batch load facility to load some large literal value triples I lost a network connection killing the shell with this process.
      When restarting the load using

      $ORACLE_HOME/jdk/bin/java -Xmx1g -DjustTriple=true -Dexchange=false -Dappend=true -Ddb.user=uniprot_rdf -Ddb.password=<password> -Ddb.host=127.0.0.1 -Ddb.port=1526 -Ddb.sid=<SID> -classpath $ORACLE_HOME/md/jlib/sdordf.jar:$ORACLE_HOME/jdbc/lib/ojdbc5.jar oracle.spatial.rdf.client.BatchLoader logs/uniprot.bad uniprot_rdf_data rdf uniprot

      I get the following error:
      Temporary table already exists!
      java.sql.SQLException: ORA-00955: name is already used by an existing object
      ORA-06512: at "MDSYS.SDO_RDF_INTERNAL", line 5557
      ORA-06512: at "MDSYS.SDO_RDF_INTERNAL", line 5593
      ORA-06512: at "MDSYS.RDF_APIS", line 933
      ORA-06512: at line 1

      at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:74)
      at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:131)
      at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:204)
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
      at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1034)
      at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:191)
      at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:950)
      at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1222)
      at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3387)
      at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3488)
      at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:3840)
      at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1086)
      at oracle.spatial.rdf.client.NTripleConverter.loadNTriple(NTripleConverter.java:391)
      at oracle.spatial.rdf.client.BatchLoader.main(BatchLoader.java:302)

      This is similar to [825344|Temporary table already exists! but slightly different in location.
      Which element should be dropped here? In a future release one might wish to update the log message that is generated here to be
      more informative.

      Regards,
      Jerven
        • 1. Re: ORA-00955: name is already used by an existing object at  "MDSYS.SDO_RDF_IN
          Sdas-Oracle
          Please try the same solution as in the other thread:

          Invoke the following as a privileged user:

          drop mdsys.RDF_LINK$_TEMPBM$;
          • 2. Re: ORA-00955: name is already used by an existing object at  "MDSYS.SDO_RDF_IN
            jerven
            Thanks for the help it works like a charm! I had tried dropping the table but as an unprivileged user but as mdsys it works perfectly.

            Jerven
            • 3. Re: ORA-00955: name is already used by an existing object at  "MDSYS.SDO_RDF_IN
              880418
              Thanks. I faced the same problem as discussed here. I tried the following command as suggested. Java batch load started working with no exceptions.

              SQL> drop table MDSYS.RDF_LINK$_TEMPBM$;


              --------------------------------------------------------------------------------------------------------------------------------------
              Just load triples into one column
              Temporary table already exists!
              java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing object
              ORA-06512: at "MDSYS.SDO_RDF_INTERNAL", line 7144
              ORA-06512: at "MDSYS.SDO_RDF_INTERNAL", line 7178
              ORA-06512: at "MDSYS.RDF_APIS", line 1360
              ORA-06512: at line 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)
              at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)
              at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
              at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521
              ----------------------------------------------------------------------------------------------------------------------------

              Edited by: 877415 on Aug 4, 2011 5:30 PM