sql >> Databáze >  >> RDS >> Oracle

Hodnota z posledního vloženého řádku v DB

To, co se snažíte udělat, je využít RETURNING doložka. Pojďme nastavit příklad tabulky a sekvence:

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;

Nyní by váš kód Java měl vypadat takto:

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. Typy indexů v oracle?

  2. Jak efektivně spojit dobře indexované tabulky MySQL

  3. datetime vs smalldatetime v SQL Server:Jaký je rozdíl?

  4. Jak uložit formátovaný text do tabulky MySQL?