sql >> データベース >  >> RDS >> Oracle

DBに最後に挿入された行の値

    あなたがやろうとしているのは、RETURNINGを利用することです 句。テーブルとシーケンスの例を設定しましょう:

    CREATE TABLE "TEST" 
    ( "ID" NUMBER NOT NULL ENABLE, 
     "NAME" VARCHAR2(100 CHAR) NOT NULL ENABLE, 
      CONSTRAINT "PK_TEST" PRIMARY KEY ("ID")
      );
    
    CREATE SEQUENCE SEQ_TEST;
    

    これで、Javaコードは次のようになります。

    String insertSql = "BEGIN INSERT INTO TEST (ID, NAME) VALUES (SEQ_TEST.NEXTVAL(), ?) RETURNING ID INTO ?; END;";
    java.sql.CallableStatement stmt = conn.prepareCall(insertSql);
    stmt.setString(1, "John Smith");
    stmt.registerOutParameter(2, java.sql.Types.VARCHAR);
    stmt.execute();
    int id = stmt.getInt(2);
    


    1. DBにレコードなしでINSERTをしたい

    2. 1つのクエリで複数のテーブルに複数の左結合

    3. すべての列名を一覧表示します

    4. JavaとOracleXE間のデータソース接続を使用したOCIとTHINドライバ接続の違いは何ですか?