使用 EXPDP 的 Oracle 导出在 Windows 7 上给出 ORA-06512 SYS.UTL_FILE 错误

Ome*_*mer 5 oracle oracle-11g export

我正在使用 Oracle 11g 并想使用以下语句导出表

C:\>expdp SYS/sys@MYDATABASE DIRECTORY = Mydir DUMPFILE = Customer.dmp LOGFILE = Customer.log TABLES = PERSON.CUSTOMER
Run Code Online (Sandbox Code Playgroud)

在此声明之后 cmd 给出了这个

UDE-28009: operation generated ORACLE error 28009
ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
Run Code Online (Sandbox Code Playgroud)

我继续

Username:  SYS@SMSPSETUP AS SYSDBA
Password:
Run Code Online (Sandbox Code Playgroud)

最后我得到了

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
Run Code Online (Sandbox Code Playgroud)

我创建了目录“Mydir”,如下所示

SQL>CREATE DIRECTORY Mydir AS 'C:\Users\osman\Desktop\Export';
Run Code Online (Sandbox Code Playgroud)

并从 Windows 文件夹系统中授予每个人对该文件夹的完全权限。

运行以下语句时:

select directory_name, directory_path from dba_directories; where directory_name='Mydir';
Run Code Online (Sandbox Code Playgroud)

我可以看到路径“C:\Users\osman\Desktop\Export”

那么为什么我会收到这个错误呢?

小智 5

我只是想插话并分享是什么让我克服了这个错误。就我而言(Win 7 上的 Ora 11.2.0.3),我发现我的目录路径中需要尾随 '\'。

替换:

CREATE OR REPLACE DIRECTORY dpump_dir AS 'C:\Data\SID'
Run Code Online (Sandbox Code Playgroud)

和:

CREATE OR REPLACE DIRECTORY dpump_dir AS 'C:\Data\SID\'
Run Code Online (Sandbox Code Playgroud)


Ome*_*mer 1

是的,我找到了解决方案。这是因为我的oracle数据库位于网络上的另一台计算机上。因此,当我尝试导出到“c:\”目录时,oracle 正在尝试导出到它自己的 C:\ 目录而不是我的目录。

我使用文件夹的网络地址作为导出目录,问题得到解决。使用例如

\\OSMAN\dump_directory
Run Code Online (Sandbox Code Playgroud)