存储过程/函数中对查询条件的判断处理
如图,select * from user 后面根据传入参数是否为空来判断是否要加上条件,目前我这样写
是不对的,会报错.请教要如何处理比较妥当
图中源代码如下:
CREATE OR REPLACE FUNCTION FUN_GETUSERDATA(userid_array IN VARCHAR2)
RETURN user_type_array AS
USER_REC_ARRAY user_type_array := user_type_array();
BEGIN
BEGIN
FOR record IN (select * from user u
if(length(userid_array) > 0)
where u.id in (userid_array)
end if;) LOOP
USER_REC_ARRAY.EXTEND();
USER_REC_ARRAY(USER_REC_ARRAY.COUNT) := user_type(record.id,
record.name,
record.no);
END LOOP;
END;
RETURN DECLARE_REC_ARRAY;
END FUN_GETUSERDATA;