有了这个,
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.