Oracle
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. пуснете таблично пространство, ако не съществува

  2. Има ли функция за разделяне на низ в PL/SQL?

  3. Копиране на ред и промяна на малка част от колони?

  4. Чисто нова производствена база данни

  5. Oracle SQL филтър за заявки в JOIN ON срещу WHERE