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

前端之家收集整理的这篇文章主要介绍了oracle – pl / sql – 是否有空行的NVL()前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有了这个,

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.

猜你在找的Oracle相关文章