Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-4921

Statement.executeUpdate(String sql, String[] columnNames) throws ERROR X0X0F.S exception with EmbeddedDriver

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Invalid
    • 10.6.2.1
    • None
    • JDBC
    • None
    • Urgent
    • Repro attached

    Description

      Statement.executeUpdate(insertSql, int[] columnIndexes) and Statement/executeUpdate(insertSql,Statement.RETURN_GENERATED_KEYS) does work, Statement.executeUpdate(String sql, String[] columnNames) doesn't.

      Test program

      import java.sql.Connection;
      import java.sql.DriverManager;
      import java.sql.ResultSet;
      import java.sql.Statement;

      public class GetGeneratedKeysTest {
      static String createTableSql = "CREATE TABLE tbl (id integer primary key generated always as identity, name varchar(200))";
      static String insertSql = "INSERT INTO tbl(name) values('value')";
      static String driver = "org.apache.derby.jdbc.EmbeddedDriver";

      static String[] idColName =

      { "id" }

      ;

      public static void main(String[] args) throws Exception {

      Class.forName(driver);
      Connection conn = DriverManager
      .getConnection("jdbc:derby:testDb;create=true");
      conn.setAutoCommit(false);
      Statement stmt = conn.createStatement();
      ResultSet rs;
      stmt.executeUpdate(createTableSql);
      stmt.executeUpdate(insertSql, idColName);
      rs = stmt.getGeneratedKeys();
      if (rs.next())

      { int id = rs.getInt(1); }

      conn.commit();
      }
      }

      Result

      Exception in thread "main" java.sql.SQLException: Table 'TBL' does not have an auto-generated column named 'id'.
      at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:95)
      at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:256)
      at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:391)
      at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346)
      at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2269)
      at org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)
      at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1321)
      at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:625)
      at org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(EmbedStatement.java:246)
      at GetGeneratedKeysTest.main(GetGeneratedKeysTest.java:23)
      Caused by: java.sql.SQLException: Table 'TBL' does not have an auto-generated column named 'id'.
      at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
      at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
      at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
      ... 9 more
      Caused by: ERROR X0X0F: Table 'TBL' does not have an auto-generated column named 'id'.
      at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:303)
      at org.apache.derby.impl.sql.execute.InsertResultSet.verifyAutoGeneratedColumnsNames(InsertResultSet.java:689)
      at org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:419)
      at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:436)
      at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:317)
      at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1232)
      ... 3 more

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              jarek.przygodzki Jarek Przygódzki
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: