oracle - Oracle DATAPUMP 导入失败
问题描述
我目前正在尝试DBMS_DATAPUMP
使用以下脚本在 PL/SQL 中导入数据库。
DECLARE
h1 NUMBER;
BEGIN
h1 := DBMS_DATAPUMP.OPEN('IMPORT', 'FULL', NULL, DBMS_SCHEDULER.generate_job_name, 'LATEST');
DBMS_DATAPUMP.ADD_FILE(handle => h1, filename => 'EXAMPLE6.DMP', directory => 'DUMP');
DBMS_DATAPUMP.START_JOB(h1);
dbms_datapump.detach(h1);
END;
/
每次执行此代码时,都会收到以下错误消息。
ERROR in line 1:
ORA-39001: invalid argument value
ORA-06512: in "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: in "SYS.DBMS_DATAPUMP", line 4929
ORA-06512: in "SYS.DBMS_DATAPUMP", line 5180
ORA-06512: in line 5
我已经用谷歌搜索了这个错误,但答案主要包括检查目录是否已经创建以及用户是否具有对该目录的读写访问权限。
我还尝试了该impdp
工具作为实验,看看我是否可以以这种方式执行导入。
impdp pdb2 directory="DUMP" dumpfile="EXAMPLE6.DMP"
根据我正在执行的用户impdp
,我收到不同的错误消息。
作为拥有所有权限的用户:
ORA-39001: invalid argument value
ORA-39000: bad dump file specification
ORA-39155: error expanding dump file name "C:\Users\...\EXAMPLE6.DMP"
ORA-48128: opening of a symbolic link is disallowed
作为 sysdba 用户:
ORA-39002: invalid operation
ORA-39070: unable to open the log file
ORA-39087: directory name DUMP is invalid
正如我已经说过的,该目录确实存在于我的驱动器上,我创建了DUMP
在 Oracle 中调用的目录并授予我的用户读写访问权限。
所有帮助将不胜感激,如果我写了一些令人困惑的东西,我很乐意澄清!
编辑:
输出select directory_name, directory_path from dba_directories;
DIRECTORY_NAME
--------------------------------------------------------------------------------
DIRECTORY_PATH
--------------------------------------------------------------------------------
DUMP
C:\Users\Nemanja\Desktop\oraclePLS
我忘了提到,Oracle 服务可以完全访问指定的 Windows 目录。
解决方案
推荐阅读
- javascript - 如何在本地测试 socket.io 上的 https?
- java - Jackson 将 CSV 反序列化为 Enum
- linux - 使用 sed 搜索和替换配置文件值
- json - 快速解码 JSON 数组或字典错误
- javascript - Chrome 扩展被拒绝:是否禁止从后端获取任何 json 数据?
- swift - 在 Swift 中通过调用 firebase 云函数进行自动完成来获取结果的性能问题
- sql - SQL Server 中的列名
- c# - 在 ListBox 中未触发具有 NotifyOnSourceUpdated 的 SourceUpdated
- javascript - 在 html 页面加载之前加载 php
- reactjs - 如何在 React with Webpack 中使用 CommonJS 模块?