我有一张表people_info:
p_name p_age
Bill 35
Joe 28
我想在Oracle中建一个存储过程
create or replace procedure xxxxxx(v_name in varchar2, ret_cursor out pkg.mycursor) is
begin
open ret_cursor for select p_name, p_age from people_info where case when v_name = '' then true else p_name = v_name end;
end xxxxxx;
其中sql语句想表达的是如果v_name的值是空的话,那么全部都选出来,如果不为空则把p_name等于v_name的栏位选出来。
我用Access当数据库的时候在where后面加iif函数完成这个功能,但是Oracle好像不能把case when放在where中。请问各位大侠,我应该怎么写?