Loading ...
Sorry, an error occurred while loading the content.

1409Re: [xml-dbms] Re: ORA-01475: must reparse cursor to change bind vari able datatype

Expand Messages
  • Ronald Bourret
    Sep 6, 2001
    • 0 Attachment
      Sorry to be so long replying. There hasn't been any progress on this
      problem. The original poster either solved the problem and didn't post
      the solution, or gave up.

      What is strange about this is that the Oracle error message states that
      the cursor must be reparsed to change the bound variable's datatype.
      Since this error occurs when executing an insert statement, I'm not sure
      what the "cursor" is.

      Here are some possibilities:

      1) Try the sales example. If this works, modify the map in the products
      example to not use order columns. What I'm curious about here is whether
      an error is occurring due to a mismatch between the type expected by
      Oracle for an order value (BigDecimal) and the type used by XML-DBMS
      (Integer).

      2) With the unmodified products.map, modify Transfer to explicitly set
      the commit mode (DOMToDBMS.setCommitMode) to COMMIT_AFTERDOCUMENT. By
      default, each insert statement is committed immediately after it is
      executed. In some databases (I don't know if Oracle is one of them),
      committing a transaction un-prepares prepared statements, which might
      cause the error. XML-DBMS is supposed to handle this correctly, but this
      is a murky area of the code. (You can also check what Oracle does by
      looking at the return value for
      DatabaseMetaData.supportsOpenStatementsAcrossCommit().)

      3) Does the Oracle documentation say anything useful about this error
      message?

      -- Ron

      Drew Tennenbaum wrote:
      >
      > Has there been any luck resolving this? I am running into the same
      > problem using the "product_in.xml" from the samples directory of
      > XMLDBMS.
      >
      > My configuration is almost identical to the previous posters.
      >
      > Running Oracle 8.1.7 with Sun's JDBC to ODBC.
      >
      > Here's the stack trace.
      >
      > at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6031)
      > at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:6188)
      > at sun.jdbc.odbc.JdbcOdbc.SQLExecute(JdbcOdbc.java:2533)
      > at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute
      > (JdbcOdbcPreparedStatement.java:217)
      > at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeUpdate
      > (JdbcOdbcPreparedStatement.java:139)
      > at de.tudarmstadt.ito.xmldbms.DOMToDBMS.insertRow(DOMToDBMS.java:703)
      > at de.tudarmstadt.ito.xmldbms.DOMToDBMS.createPropRow
      > (DOMToDBMS.java:394)
      > at de.tudarmstadt.ito.xmldbms.DOMToDBMS.processFKNodes
      > (DOMToDBMS.java:413)
      > at de.tudarmstadt.ito.xmldbms.DOMToDBMS.createClassRow
      > (DOMToDBMS.java:360)
      > at de.tudarmstadt.ito.xmldbms.DOMToDBMS.processFKNodes
      > (DOMToDBMS.java:417)
      > at de.tudarmstadt.ito.xmldbms.DOMToDBMS.createClassRow
      > (DOMToDBMS.java:360)
      > at de.tudarmstadt.ito.xmldbms.DOMToDBMS.processFKNodes
      > (DOMToDBMS.java:417)
      > at de.tudarmstadt.ito.xmldbms.DOMToDBMS.createClassRow
      > (DOMToDBMS.java:360)
      > at de.tudarmstadt.ito.xmldbms.DOMToDBMS.processRootElement
      > (DOMToDBMS.java:312)
      > at de.tudarmstadt.ito.xmldbms.DOMToDBMS.processRoot
      > (DOMToDBMS.java:272)
      > at de.tudarmstadt.ito.xmldbms.DOMToDBMS.storeDocument
      > (DOMToDBMS.java:241)
      > at Transfer.toDBMS(Transfer.java:182)
      > at Transfer.main(Transfer.java:135)
    • Show all 6 messages in this topic