Oracle
如何刪除被 UTL_FILE 鎖定的文件?
我編寫了一個崩潰的 PL/SQL 腳本並忘記關閉文件句柄(類型
UTL_FILE.file_type
)。現在我無法刪除該文件。除了重新啟動實例或重新啟動盒子之外,我可以在 Oracle 中執行什麼來清除句柄嗎?我有
system
使用者訪問有問題的盒子。更新:Oracle 在 Windows 上執行。
會話死了嗎?
SELECT sid, serial# FROM v$session WHERE /* conditions */; -- ALTER SYSTEM KILL SESSION '<sid>, <serial>'; ALTER SYSTEM KILL SESSION '123, 456';
如果終止會話不起作用,您可以使用名為 Handle 的 SysInternals 實用程序顯式關閉文件句柄。
https://technet.microsoft.com/en-us/sysinternals/bb896655
我還發現了一個 SuperUser 執行緒,其中提到 LockHunter 和 Process Explorer 作為其他可以完成這項工作的工具:
https://superuser.com/questions/425727/how-to-unlock-file-without-kill-related-process
如果您只想強制關閉文件,您可以使用一個工具來關閉打開的文件。
Google搜尋我找到了 OpenFilesView。見http://www.nirsoft.net/utils/opened_files_view.html