Plsql 当我提供I/p时执行函数[表中没有的参数,我得到了错误;否则它会被执行] 在varchar2中创建或替换函数get_ware_house_masterp_WAREHOUSE_ID 返回id\u wh\u id 是 l_仓库_列表id_wh.id:=id_wh\u id; str varchar2300; 开始 str:=“选择BMw.wh\u id 从pod_地点_仓库_映射_tb W 其中W.wh|u id在'p|u WAREHOUSE|u id|; 立即将str批量收集到l_仓库_清单中; 对于l_warehouse_列表中的i。第一..l_warehouse_列表。最后一个循环 dbms_output.put_linel_warehouse_listi.wh_id; 端环; 返回仓库清单; 最终获得物品、房子和主人;

Plsql 当我提供I/p时执行函数[表中没有的参数,我得到了错误;否则它会被执行] 在varchar2中创建或替换函数get_ware_house_masterp_WAREHOUSE_ID 返回id\u wh\u id 是 l_仓库_列表id_wh.id:=id_wh\u id; str varchar2300; 开始 str:=“选择BMw.wh\u id 从pod_地点_仓库_映射_tb W 其中W.wh|u id在'p|u WAREHOUSE|u id|; 立即将str批量收集到l_仓库_清单中; 对于l_warehouse_列表中的i。第一..l_warehouse_列表。最后一个循环 dbms_output.put_linel_warehouse_listi.wh_id; 端环; 返回仓库清单; 最终获得物品、房子和主人;,plsql,Plsql,如何处理我需要使用的表中不存在的数据如果l_warehouse_list=null,则dbms_输出“未找到数据”,但如果函数中提到的表中不存在数据,则我得到以下错误: 数字或值更改错误 您可以对您的收藏使用count函数: 在varchar2中创建或替换函数get_ware_house_masterp_WAREHOUSE_ID 返回id\u wh\u id 是 l_仓库_列表id_wh.id:=id_wh\u id; str varchar2300; 开始 str:=“选择BMw.wh\u i

如何处理我需要使用的表中不存在的数据如果l_warehouse_list=null,则dbms_输出“未找到数据”,但如果函数中提到的表中不存在数据,则我得到以下错误:

数字或值更改错误

您可以对您的收藏使用count函数:

在varchar2中创建或替换函数get_ware_house_masterp_WAREHOUSE_ID 返回id\u wh\u id 是 l_仓库_列表id_wh.id:=id_wh\u id; str varchar2300; 开始 str:=“选择BMw.wh\u id 从pod_地点_仓库_映射_tb W 其中W.wh|u id在'p|u WAREHOUSE|u id|; 立即将str批量收集到l_仓库_清单中; 如果l_warehouse_list.count>0,则 对于l_warehouse_列表中的i。第一..l_warehouse_列表。最后一个循环 dbms_output.put_linel_warehouse_listi.wh_id; 端环; 其他的 dbms_output.put_行“无数据”; 如果结束; 返回仓库清单; 最终获得物品、房子和主人; 下面是如何在不简化代码的情况下演示最新版本:

CREATE OR REPLACE TYPE id_wh_id AS TABLE OF VARCHAR2(100);

create or replace function get_ware_house_master(p_WAREHOUSE_IDS in  varchar2)
     return id_wh_id

is
    l_warehouse_list id_wh_id := id_wh_id();
    str varchar2(300);        
begin

    str := 'SELECT * from dual where ''a''=''' ||p_WAREHOUSE_IDS  || '''';
        dbms_output.put_line(str);  
    execute immediate str bulk collect into l_warehouse_list;


if l_warehouse_list.count() >0 then
    for i in l_warehouse_list.first..l_warehouse_list.last loop  
        dbms_output.put_line(l_warehouse_list(i));    
    end loop;    
else
    dbms_output.put_line('No data');
end if;

    return l_warehouse_list;
end get_ware_house_master;
/

-- and call to the function:
          select get_ware_house_master('sbi') from dual
union all select get_ware_house_master('a')   from dual
;

您是否尝试处理无数据异常?请编辑您的问题并提供有关您看到的错误的信息。谢谢。是的,我已经用过了,但尽管如此,如果我在处理其他数据时使用数据,如果数据不存在,我会得到错误ora 06502值或数字错误,但我必须使用no_数据,因为当找不到o_数据时,我需要显示o/p状态