我有很多存储过程在数据库链接上的视图上工作。
我想在执行所有过程之前检查视图是否可用,所以我以面向对象的编程方式创建了一个 check() 函数。
现在我可以做: if(checked()=1) then ..work.. else null; 万一;
功能是:
create or replace FUNCTION CHECK_MYVIEW RETURN NUMBER IS
CHECKED NUMBER;
BEGIN
BEGIN
select 1
into CHECKED
from MYVIEW
where rownum = 1
;
EXCEPTION WHEN OTHERS THEN
CHECKED:=0;
END;
RETURN CHECKED;
END CHECK_MYVIEW;
经过一些测试,我已经编写了检查查询,结果很好。通过这种选择,我可以判断视图是否有记录,即使远程数据库存在连接问题。但这是我自己的解决方案。
是否有优化的 oracle 查询来获得相同的功能?对于任何类型的异常都不会在没有引发异常的情况下工作......