簡體   English   中英

DBlink錯誤時表或視圖不存在

[英]Table or view doesn't exist when DBlink is wrong

如果我運行下面的查詢, 得到找不到遠程數據庫ORA-02019連接描述為DBLINK BLAH是不存在的。

SELECT * FROM DUAL@BLAH;

但是,如果我將其放在匿名塊中,則它給出的ORA-00942表或視圖不存在錯誤。

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

試試這個(動態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錯誤,而不是運行時錯誤。

編譯錯誤的原因是,在編譯semantic檢查期間,oracle對blah不了解,因為它沒有定義(同義詞)。

我建議ORA-02019是運行時錯誤。 SQL嘗試在dblink上運行表,但失敗。 這就是ORA-02019發生的原因。 而ORA-00942是編譯時錯誤。 編譯begin..end塊時,它正在驗證對象。 驗證失敗,並且拋出了ORA-00942。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM