Oracle
使用 EXPDP 的 Oracle 導出在 Windows 7 上出現 ORA-06512 SYS.UTL_FILE 錯誤
我正在使用 Oracle 11g 並希望使用以下語句導出表
C:\>expdp SYS/sys@MYDATABASE DIRECTORY = Mydir DUMPFILE = Customer.dmp LOGFILE = Customer.log TABLES = PERSON.CUSTOMER
在這個聲明之後 cmd 給出了這個
UDE-28009: operation generated ORACLE error 28009 ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
我繼續
Username: SYS@SMSPSETUP AS SYSDBA Password:
最後我得到了
ORA-39002: invalid operation ORA-39070: Unable to open the log file. ORA-29283: invalid file operation ORA-06512: at "SYS.UTL_FILE", line 536 ORA-29283: invalid file operation
我創建了目錄’Mydir’,如下所示
SQL>CREATE DIRECTORY Mydir AS 'C:\Users\osman\Desktop\Export';
並從 windows 文件夾系統授予每個人對該文件夾的完全權限。
執行以下語句時:
select directory_name, directory_path from dba_directories; where directory_name='Mydir';
我可以看到路徑“C:\Users\osman\Desktop\Export”
那麼為什麼我會收到這個錯誤?
我只是想插話並分享是什麼讓我克服了這個錯誤。就我而言(Win 7 上的 Ora 11.2.0.3),我發現我的目錄路徑中需要結尾的“\”。
替換:
CREATE OR REPLACE DIRECTORY dpump_dir AS 'C:\Data\SID'
和:
CREATE OR REPLACE DIRECTORY dpump_dir AS 'C:\Data\SID\'
首先,oracle 文件非常清楚您不應該將數據泵用作 SYS:
http://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_export.htm#SUTIL824 :
不要呼叫 Export as SYSDBA,除非 Oracle 技術支持要求
問題幾乎肯定與權限有關。執行 Oracle 數據庫的使用者是嘗試寫入文件的使用者,因此請檢查使用者是否可以寫入相關文件夾(並且可以通過所有父文件夾訪問它)。
也許在驅動器的根目錄中創建一個文件夾(例如“E:\TestExport”或類似的),這樣您需要擔心的父文件夾更少,然後在 Oracle 中使用它來確定是否是這種情況。