Oracle/PL/SQL/Into

< Oracle‎ | PL/SQL

Para realizar consultas puntuales que devuelven un único registro, se utiliza INTO a continuación de SELECT.

  • Si la consulta no devuelve ningún registro, se produce la excepción NO_DATA_FOUND.
  • Si la consulta devuelve más de un registro, se produce la excepción TOO_MANY_ROWS.

Ejemplo con declaración de columnas por separado y uso de %TYPE

declare
  v_col1 tabla.col1%type;
  v_col2 tabla.col2%type;
  v_col3 tabla.col3%type;
begin
  v_col3 := 7;

  select col1, col2
  into v_col1, v_col2
  from table
  where col3 = v_col3;
exception
  when NO_DATA_FOUND then
    ...
  when TOO_MANY_ROWS then
    ...
end;

Ejemplo con declaración de registro y uso de %ROWTYPE

declare
  v_reg tabla%rowtype;
  v_col3 tabla.col3%type;
begin
  v_col3 := 7;

  select *
  into v_reg
  from tabla
  where col3 = v_col3;
exception
  when NO_DATA_FOUND then
    ...
  when TOO_MANY_ROWS then
    ...
end;