欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

查询不到数据时设一个默认值,该如何处理

更新时间: 2014-01-05 02:14:29 责任编辑: Author_N1

 

查询不到数据时设一个默认值
存储过程里要查询某个销售订单的发货日期,按照销售订单查询,如果差不到数据的话就默认为空

在一个游标循环中
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没查到数据就赋值会报错
--参考方法--
引用:
因为要查询出数据并放到varsenddate这个变量中去,如果一行数据也没有查到,就会报错的。


begin
varsenddate:='默认值';
  select c_billdate
    into varsenddate
    from APLIUSER.TXD_SDLIST
      where c_saleitem
--参考方法--
c_saleid = csr.c_sditemid
            and rownum<2;
...... 
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:14:29
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7396/
本文WWW.DOC100.NET DOC100.NET版权所有。