有了这个,
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 - pl/sql - 空行是否有 NVL(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3891829/