Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如果表类型参数为null,则获取所有记录_Sql_Oracle_Plsql - Fatal编程技术网

Sql 如果表类型参数为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

在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)
)
试试这个:

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做了一张桌子。调用时如何设置参数值?我已经处理过这样的情况:传递一个空集合,而不是一个空值集合。