Sql 如果表类型参数为null,则获取所有记录
在Oracle中,如果表值参数为null,我希望获取列的所有值,否则仅获取匹配的记录Sql 如果表类型参数为null,则获取所有记录,sql,oracle,plsql,Sql,Oracle,Plsql,在Oracle中,如果表值参数为null,我希望获取列的所有值,否则仅获取匹配的记录 create or replace PROCEDURE pr_Employees ( lastnames IN LastName, rowCursor OUT SYS_REFCURSOR) IS BEGIN Select * from emp where lastname in ( SELECT COLUMN_VALUE FROM TABLE(lastnames) ) 试试这个: cr
create or replace PROCEDURE pr_Employees (
lastnames IN LastName,
rowCursor OUT SYS_REFCURSOR) IS
BEGIN
Select * from emp where lastname in (
SELECT COLUMN_VALUE FROM TABLE(lastnames)
)
试试这个:
create or replace procedure pr_employees
( lastnames in lastname
, rowcursor out sys_refcursor )
is
begin
open rowcursor for
select * from emp
where lastname in
( select column_value from table(lastnames) )
or lastnames is empty;
end pr_employees;
谢谢你的帮助。我尝试了上面的一个,如果我传递的lastnames为null,它将返回0条记录。lastnames是如何定义的?我用瓦查尔260做了一张桌子。调用时如何设置参数值?我已经处理过这样的情况:传递一个空集合,而不是一个空值集合。