Oracle

使用 EXPDP 的 Oracle 導出在 Windows 7 上出現 ORA-06512 SYS.UTL_FILE 錯誤

  • August 31, 2016

我正在使用 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 中使用它來確定是否是這種情況。

引用自:https://dba.stackexchange.com/questions/71635