加入收藏 | 设为首页 | 会员中心 | 我要投稿 51站长网 (https://www.51zhanzhang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
站内搜索:
当前位置: 首页 > 站长百科 > 正文

oracle – pl / sql – 是否有空行的NVL()

发布时间:2021-01-09 07:32:09 所属栏目:站长百科 来源:网络整理
导读:有了这个, set serveroutput on size 900000;DECLARE test VARCHAR(255):=0;BEGIN SELECT id INTO test FROM sku WHERE id = 1515; dbms_output.put_line('Result:' || test);END; 我有错误 "no data found" 当数据库中不存在ID时. 我怎么能在这里使用类似nv

有了这个,

set serveroutput on size 900000;
DECLARE
  test VARCHAR(255):=0;
BEGIN
    SELECT id INTO test FROM sku WHERE id = 1515;
    dbms_output.put_line('Result:' || test);
END;

我有错误

"no data found"

当数据库中不存在ID时.

我怎么能在这里使用类似nvl()的东西,所以我可以得到一个默认值而不是得到一个错误?

解决方法

如果合适,您可以将此作为更常见的NO_DATA_FOUND异常处理的替代方法:

DECLARE
  test VARCHAR(255):=0;
BEGIN
    SELECT NVL(MAX(id),'default') INTO test FROM sku WHERE id = 1515;
    dbms_output.put_line('Result:' || test);
END;

通过使用MAX(ID),您肯定会返回一行,当没有数据时将返回NULL;然后以通常的方式使用NVL.

(编辑:ASP站长)

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

    相关内容
    未处理完善
      无相关信息
    未处理完善