Return ROWID Parameter from insert statement using JDBC connection to oracle

前端 未结 5 754
迷失自我
迷失自我 2020-12-15 13:58

I can\'t seem to get the right magic combination to make this work:


OracleDataSource ods = new oracle.jdbc.pool.OracleDataSource();
ods.setURL(\"jdbc:oracle         


        
5条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-15 14:13

    Usually you don't want to make code database dependent. Instead of OraclePreparedStatement, you should use CallableStatement.

    CallableStatement statement = connection.prepareCall("{call INSERT INTO tableA (some_id) VALUES (1) RETURNING ROWID INTO ? }");
    statement.registerOutParameter( 1, Types.VARCHAR );
    
    int updateCount = statement.executeUpdate();
    if (updateCount > 0) {
       return statement.getString(1);
    }
    

提交回复
热议问题