【发布时间】:2011-06-20 08:18:00
【问题描述】:
这是我正在尝试调试的一些实际代码:
BEGIN
OPEN bservice (coservice.prod_id);
FETCH bservice
INTO v_billing_alias_id, v_billing_service_uom_id, v_summary_remarks;
CLOSE bservice;
v_service_found := 1;
-- An empty fetch is expected for some services.
EXCEPTION
WHEN OTHERS THEN
v_service_found := 0;
END;
当参数化游标bservice(prod_id)为空时,将NULL取入三个变量,不抛出异常。
所以写这段代码期望它抛出异常的人是错误的,对吧?该评论似乎暗示空提取是预期的,然后它设置一个标志以供以后处理,但我认为这段代码也不可能用空集进行测试。
显然,它应该使用 bservice%NOTFOUND 或 bservice%FOUND 或类似的。
【问题讨论】:
标签: oracle exception plsql cursor