存储过程里要查询某个销售订单的发货日期,按照销售订单查询,如果差不到数据的话就默认为空
在一个游标循环中
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;
......