2 Replies Latest reply on Nov 12, 2008 5:48 PM by 669888

    Temporary table already exists!

      Hi I am trying to use the oracle.spatial.rdf.client.BatchLoader to load triples into a semantic model. I get the following stack trace:

      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 3326
      ORA-06512: at "MDSYS.SDO_RDF_INTERNAL", line 3362
      ORA-06512: at "MDSYS.RDF_APIS", line 786
      ORA-06512: at line 1

           at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:74)
           at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:110)
           at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:171)
           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:1030)
           at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:191)
           at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:944)
           at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1222)
           at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3381)
           at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3482)
           at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:3839)
           at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1085)
           at oracle.spatial.rdf.client.NTripleConverter.loadNTriple(NTripleConverter.java:391)
           at oracle.spatial.rdf.client.BatchLoader.main(BatchLoader.java:302)

      Unfortunately it doesn;t give me the name of the offending table so I can drop it. I was able to load triples in this manner until I had to interrupt a load partway through. If I try to run sem_apis.cleanup_batch_load as user MDSYS, however, I receive the following:

      ORA-13199: Batch load cleanup failed. ORA-00942: table or view does not exist
      ORA-06512: at "MDSYS.MD", line 1723
      ORA-06512: at "MDSYS.MDERR", line 17
      ORA-06512: at "MDSYS.SDO_RDF", line 891
      ORA-06512: at "MDSYS.SDO_RDF", line 897
      ORA-06512: at line 1

      Again, I am not provided with the name of the offending table. Can someone please provide some insight as to how I can resolve this?

      PS: It would be helpful if at least the code weren't obfuscated so one could follow these traces, esp. given the lack of documentation and bugginess
        • 1. Re: Temporary table already exists!
          The problem is caused by a previous un-successful batch loading. To solve it,

          As MDSYS, drop the following table.
          SQL> drop mdsys.RDF_LINK$_TEMPBM$;

          Alternatively, you can use the batch loader in Jena Adaptor 2.0. It will shield you from
          this kind of problems.

          Regarding sem_apis.cleanup_batch_load, please cut & paste the whole command line
          you used.
          • 2. Re: Temporary table already exists!
            Great! Dropping that table worked, thanks. For some reason, it wasnt appearing under tables owned by mdsys.
            I will check out the 2.0 batch loader as well later on. I'm not worried about the cleanup_batch_load command anymore since dropping the temp table seemed to solve my problem.