Saltar al contenido

Recuperar la última IDENTIDAD insertada de Oracle

Solución:

Bien. Oracle usa secuencias y valores predeterminados para la funcionalidad IDENTITY en 12c. Por lo tanto, necesita conocer las secuencias para su pregunta.

Primero cree una tabla de identidad de prueba.

CREATE TABLE IDENTITY_TEST_TABLE
(
  ID NUMBER GENERATED ALWAYS AS IDENTITY 
, NAME VARCHAR2(30 BYTE) 
);

Primero, busquemos el nombre de la secuencia que se crea con esta columna de identidad. Este nombre de secuencia es un valor predeterminado en su tabla.

Select TABLE_NAME, COLUMN_NAME, DATA_DEFAULT from USER_TAB_COLUMNS
where TABLE_NAME = 'IDENTITY_TEST_TABLE';

para mí, este valor es “ISEQ $$ _ 193606”

inserte algunos valores.

INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('aydın');

luego inserte el valor y busque la identidad.

INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
 SELECT "ISEQ$$_193606".currval from dual; 

deberías ver tu valor de identidad. Si quieres hacerlo en un bloque, usa

declare
   s2 number;
 begin
   INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla') returning ID into s2;
   dbms_output.put_line(s2);
 end;

El último ID es el nombre de mi columna de identidad.

por favor, compruebe

INSERT INTO yourtable (....)
  VALUES (...)
  RETURNING pk_id INTO yourtable;

Le ayudará a recuperar la última fila insertada

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *