Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

पीएलएसक्यूएल जेडीबीसी:अंतिम पंक्ति आईडी कैसे प्राप्त करें?

आम तौर पर आप Statement#getGeneratedKeys() . का उपयोग करेंगे इसके लिए (उदाहरण के लिए यह उत्तर भी देखें), लेकिन यह अभी तक (अभी भी) Oracle JDBC ड्राइवर द्वारा समर्थित नहीं है।

आपका सबसे अच्छा दांव या तो . है CallableStatement . का उपयोग करें RETURNING . के साथ खंड:

String sql = "BEGIN INSERT INTO mytable(id, content) VALUES (seq_mytable.NEXTVAL(), ?) RETURNING id INTO ?; END;";

Connection connection = null;
CallableStatement statement = null;

try {
    connection = database.getConnection();
    statement = connection.prepareCall(sql);
    statement.setString(1, "test");
    statement.registerOutParameter(2, Types.NUMERIC);
    statement.execute();
    int id = statement.getInt(2);
    // ...

या आग SELECT sequencename.CURRVAL INSERT . के बाद उसी लेन-देन में:

String sql_insert = "INSERT INTO mytable(content) VALUES (?)";
String sql_currval = "SELECT seq_mytable.CURRVAL FROM dual";

Connection connection = null;
PreparedStatement statement = null;
Statement currvalStatement = null;
ResultSet currvalResultSet = null;

try {
    connection = database.getConnection();
    connection.setAutoCommit(false);
    statement = connection.prepareStatement(sql_insert);
    statement.setString(1, "test");
    statement.executeUpdate();
    currvalStatement = connection.createStatement();
    currvalResultSet = currvalStatement.executeQuery(sql_currval);
    if (currvalResultSet.next()) {
        int id = currvalResultSet.getInt(1);
    }
    connection.commit();
    // ...


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कथन से चयन में तालिका प्रकार का उपयोग कैसे करें?

  2. शेल स्क्रिप्ट से sqlplus चलाते समय त्रुटि प्रबंधन का प्रबंधन

  3. क्या मुझे Oracle में प्राथमिक कुंजी कॉलम को अनुक्रमित करना चाहिए

  4. ORA - 00933 इनर जॉइन और as . के साथ भ्रम

  5. वर्ग में प्रत्येक समूह की पहली पंक्ति का चयन करें