簡單代碼結構如下
Dim bf As OracleBFile
.....
if bf.FileExists then
bf.OpenFile()
通常考慮是先判斷檔案是否在服務器上存,再打開。
但是在FileExists方法報錯,無效操作。反編譯Oracle.DataAccess.dll,發現在FileExists屬性里,會判斷檔案是否打開。
而檔案是否打開的標志位,只在OpenFile中設定為True。這樣就產生了一個矛盾,不執行OpenFile就無法使用FileExists。
而如果檔案不存在的話,OpenFile直接就報錯了。FileExits也就沒有存在的意義了。
這個現象在12c中存在,在oracle 9系列就沒問題。oracle 9系列的dll中,FileExists方法并沒有加入對檔案是否打開的判斷。
這是Oracle的Bug還是有意而為之?謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/41697.html
標籤:開發
上一篇:Oracle 陣列問題
