Oracle DB Link的Table異動欄位但呼叫端Procedure/Pkg抓不到異動後欄位
DotBlogs Tags: 隨手記
純筆記,也分享給可能有類似問題的人,自己在工作上,已經遇到三次了,因為之前沒記錄,每次發生都跟鬼打牆一樣試半天,才找到解法。
環境:Oracle 11GR2
首先,建立一個 DB Link,叫 DLTEST,然後在裡面開一個 Table 叫 LEO_TEST,有兩個欄位:AAA、BBB。
在呼叫端,建立個 Procedure,直接 Insert 資料到 LEO_TEST@DLTEST:
順利編譯完成。接著,把 LEO_TEST 加入第三個欄位 CCC:
然後調整 Procedure 加入第三個欄位 CCC,重新編譯,結果就失敗了:
原因是:
但實際上 CCC 欄位已存在,但怎樣都編譯不過,最後找到的解法是,先把 DB Link 那邊的 Table 改名,然後重新編譯呼叫端的 Procedure,當然會發生錯誤,接著再把資料表名稱改回來,重編譯呼叫端的 Procedure,就可以順利編譯完成。
原因不明,我也沒再細追。
有其他解法,也請務必告訴小弟,謝謝。
--------
沒什麼特別的~
不過是一些筆記而已