Ho una funzione che restituirebbe un record con tipo my_table%ROWTYPE
e nel chiamante potrei controllare se il record restituito è nullo, ma PL/SQL si lamenta dell'istruzione if cheControllare un record IS NOT NULL in plsql
PLS-00306: numero o il tipo di argomenti nella chiamata a male 'non è nullo'
Ecco il mio codice:
v_record my_table%ROWTYPE;
v_row_id my_table.row_id%TYPE := 123456;
begin
v_record := myfunction(v_row_id)
if (v_record is not null) then
-- do something
end if;
end;
function myfunction(p_row_id in my_table.row_id%TYPE) return my_table%ROWTYPE is
v_record_out my_table%ROWTYPE := null;
begin
select * into v_record_out from my_table
where row_id = p_row_id;
return v_record_out;
end myfunction;
Grazie.
Grazie per la risposta. È l'unico modo per controllare se un record è nullo? È strano per me che possiamo assegnare null a un record, ma non possiamo controllare se un record è nullo. – Sapience
Per quanto ne so, non è possibile. Tuttavia, il controllo della chiave PRIMARY KEY o 'NOT NULL' dovrebbe essere sufficiente. –
Buona soluzione! Io uso l'assegnazione di 'NULL' per registrare e questo è il modo di controllare! +1 – gavenkoa