查询不到数据时设一个默认值存储过程里要查询某个销售订单的发货日期,按照销售订单查询,如果差不到数据的
查询不到数据时设一个默认值
存储过程里要查询某个销售订单的发货日期,按照销售订单查询,如果差不到数据的话就默认为空
在一个游标循环中
select c_billdate
into varsenddate
from APLIUSER.TXD_SDLIST
where c_saleitem||c_saleid = csr.c_sditemid
and rownum<2;
执行到这里就会报错ORA-01403: 未找到任何数据
请问应该如何解决?
[解决办法]
是的,使用select。。。into时,如果没有找到数据或者找到多条数据都会出现异常!
通常的情况:
......
begin
select c_billdate
into varsenddate
from APLIUSER.TXD_SDLIST
where c_saleitem
[解决办法]
c_saleid = csr.c_sditemid
and rownum<2;
exception
when others then
varsenddate := sysdate-10; --这里设置默认值
end;
......
[解决办法]
我记得实在查询前给变量varsenddate先付个初始值,你那样select。。。into没查到数据就赋值会报错
[解决办法]
begin
varsenddate:='默认值';
select c_billdate
into varsenddate
from APLIUSER.TXD_SDLIST
where c_saleitem
[解决办法]
c_saleid = csr.c_sditemid
and rownum<2;
......
