我有收到一個記錄作爲一個IN參數(該過程也有一個OUT參數。)如何檢查記錄爲空
CREATE OR REPLACE PACKAGE p
PROCEDURE p_select(p_filter_params IN t_filter_params
, p_order_list OUT SYS_REFCURSOR);
END p;
CREATE OR REPLACE PACKAGE BODY p
PROCEDURE p_select(p_filter_params IN t_filter_params
, p_order_list OUT SYS_REFCURSOR) AS
BEGIN
IF p_filter_params IS NULL
THEN
NULL;
END IF;
END p_select,
END p;
可執行部分
DECLARE
TYPE t_filter_params IS RECORD
(f_name customers.cust_first_name%TYPE
, l_name customers.cust_last_name%TYPE
, city customers.cust_address.city%TYPE
, from_date orders.order_date%TYPE
, to_date orders.order_date%TYPE);
vr_params t_filter_params;
TYPE ref_cursor IS REF CURSOR;
v_cursor ref_cursor;
BEGIN
/*vr_params.f_name := 'john';
vr_params.l_name := 'smith';
vr_params.city := 'Dallas';
vr_params.from_date := SYSDATE - 100;
vr_params.to_date := SYSDATE;*/
--p.p_select(vr_params, v_cursor);
p.p_select(null, v_cursor);
end;
一個程序,有人告訴我如何使程序中的IF聲明成爲可能嗎?
非常感謝, Mikcutu。
有什麼問題?如果你將一個非空值傳遞給過程,它如何工作? – smnbbrv
@smnbbrv:對不起,我不明白你的問題。 – mikcutu
您在詢問記錄是否爲空。但。你在這裏傳遞一個絕對爲'NOT NULL'的記錄'p.p_select(vr_params,v_cursor);'。所以問題是,你爲什麼期望你的'if'工作? – smnbbrv