Tôi có một hàm sẽ trả về bản ghi với loại my_table%ROWTYPE
và trong người gọi, tôi có thể kiểm tra xem bản ghi đã trả về có rỗng hay không, nhưng PL/SQL than phiền câu lệnh ifKiểm tra bản ghi IS NOT NULL trong plsql
PLS-00.306: số sai hoặc loại lập luận trong lời kêu gọi 'iS NOT NULL'
đây là mã của tôi:
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;
Cảm ơn.
Cảm ơn câu trả lời của bạn. Đó có phải là cách duy nhất để kiểm tra nếu một bản ghi là null không? Thật lạ với tôi rằng chúng ta có thể gán null cho một bản ghi, nhưng không thể kiểm tra nếu một bản ghi là null. – Sapience
Theo như tôi biết, điều đó là không thể. Việc kiểm tra cột 'PRIMARY KEY' hoặc cột' NOT NULL' là đủ. –
Giải pháp tốt! Tôi sử dụng phân công 'NULL' để ghi lại và đây là cách để kiểm tra! +1 – gavenkoa