ORA-06508 處理及心得

410tian發表於2011-02-24

原本沒問題的程式執行的時候報錯ORA-06508,全域性變數的問題

[@more@]

今天在測試程式碼時,原本執行正常的程式報了一個錯:

ORA-06508: PL/SQL: 無法找到正在呼叫 的程式單元

我具體的操縱是這樣幾步:

1、開啟一個session執行測試程式。

2、開啟另一個會話修改測試程式並編譯。

3、回到第一個會話繼續執行測試程式,這個時候程式裡沒有改動過的部分也會報錯。

出現這種情況的原因是因為,對於全域性變數,每一個session會生成一個本地copy,如果程式重新編譯的話,就會因程式裡原變數找不到而丟棄該變數,繼而導致這個錯誤。

所以上述操作解釋為:

1、新開一個session執行程式時,生成一個程式變數的copy。

2、重新編譯程式,全域性變數重新生成。

3、重新執行程式時,發現變數已經失效,並報錯。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7691350/viewspace-1046444/,如需轉載,請註明出處,否則將追究法律責任。

相關文章