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;