DBlink错误时,表或视图不存在

时间:2015-07-02 12:08:58

标签: oracle plsql oracle11g

如果我运行以下查询,我将找到未找到远程数据库的,因为DBlink BLAH 不存在。

SELECT * FROM DUAL@BLAH;

但是如果我把它放在一个匿名块中,它给 ORA-00942表或视图不存在错误。

BEGIN
  SELECT * FROM DUAL@BLAH;
EXCEPTION
  WHEN OTHERS THEN
    NULL;
END;

2 个答案:

答案 0 :(得分:0)

试试这个(动态SQL),你会得到ORA-02019 connection description for remote database not found

begin
EXECUTE IMMEDIATE 'select * from dual@blah';
end;
/

其他错误ORA-00942 table or view does not exist可能是compilation错误,而不是运行时错误。

编译错误的原因是,blah在编译semantic检查期间未知body { height:2000px; width: 100%; margin:0; padding:0; } #scroller-left{ position: fixed; left: 0; background:#CCC; } #scroller-right{ position: fixed; right: 0; background:#CCC; } ,因为它未定义(同义词)。

答案 1 :(得分:0)

我建议ORA-02019是运行时错误。 SQL尝试在dblink上运行该表但失败。这就是ORA-02019发生的原因。而ORA-00942是编译时错误。在编译begin..end块时,它正在验证对象。验证失败,它抛出了ORA-00942。