如果我運行下面的查詢,我得到ORA-02019遠程數據庫的連接說明未發現爲DBLINK BLAH是不存在的。表或視圖不存在時DBLINK是錯誤的
SELECT * FROM [email protected];
但如果我把它放在一個匿名塊,它給人ORA-00942表或視圖不存在錯誤。
BEGIN
SELECT * FROM [email protected];
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
如果我運行下面的查詢,我得到ORA-02019遠程數據庫的連接說明未發現爲DBLINK BLAH是不存在的。表或視圖不存在時DBLINK是錯誤的
SELECT * FROM [email protected];
但如果我把它放在一個匿名塊,它給人ORA-00942表或視圖不存在錯誤。
BEGIN
SELECT * FROM [email protected];
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
試試這個(動態SQL),你會得到ORA-02019 connection description for remote database not found
begin
EXECUTE IMMEDIATE 'select * from [email protected]';
end;
/
其他錯誤ORA-00942 table or view does not exist
可能是一個錯誤compilation
,而不是一個運行錯誤。
編譯錯誤的原因是,blah
在編譯semantic
檢查期間由於未定義(同義詞)而未知。
我建議ORA-02019是運行時錯誤。 SQL試圖在dblink上運行該表,但失敗。這就是ORA-02019發生的原因。而ORA-00942是編譯時錯誤。編譯begin..end時,它正在驗證對象。驗證失敗並拋出了ORA-00942。
刪除WHEN OTHERS THEN NULL並在運行模塊時向我們顯示輸出 – kevinsky