0

我想我应该在我的 Java 应用程序中提供新的扩展 varchar2 限制。这是我到目前为止所做的:

  1. 根据推荐的程序将 MAX_STRING_SIZE 更改为 EXTENDED。
  2. 将相关列扩展到 32767 个字符。
  3. 运行程序。

Java 调用ResultSet.updateString( str, idx )运行良好,但是当我来到 ResultSet.updateRow() 时,我最终遇到了一个 Java 异常,指的是 Oracle 错误:

java.sql.SQLException: ORA-01461: 只能绑定 LONG 值以插入 LONG 列

完整的错误堆栈(或至少不引用我的代码的部分)如下:

java.sql.SQLException: ORA-01461: can bind a LONG value only for insert into a LONG column
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
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.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:947)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1222)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3381)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3462)
at oracle.jdbc.driver.UpdatableResultSet.executeUpdateRow(UpdatableResultSet.java:3317)
at oracle.jdbc.driver.UpdatableResultSet.updateRow(UpdatableResultSet.java:2281)

据我估计,应该是这样。但是要么我忘记了一些基本的东西,要么这一定是一个错误(可能在 jdbc 库中)。

4

1 回答 1

1

您必须使用 12c 中的 JDBC 驱动程序。

于 2015-05-22T22:05:27.087 回答