首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle Datapump API

Oracle Datapump API
EN

Stack Overflow用户
提问于 2018-01-10 20:30:01
回答 1查看 549关注 0票数 0

我正在重写一个导入和导出oracle数据库的应用程序。我使用的是从代码中作为进程执行的imp.exe和exp.exe。现在我尝试使用impdp和expdp来代替它们。我在https://docs.oracle.com/上研究了一些示例,但是下面的代码在DBMS_DATAPUMP.ADD_FILE上失败了。

代码语言:javascript
复制
DECLARE
  h2 NUMBER;
BEGIN    
  h2 := DBMS_DATAPUMP.OPEN('EXPORT','SCHEMA',NULL, 'MYJOB', 'LATEST');
  DBMS_DATAPUMP.ADD_FILE(h2,'test1.dmp','datapump_dir');
  DBMS_DATAPUMP.METADATA_FILTER(h2,'SCHEMA_EXP','IN (''sc900'')');
  DBMS_DATAPUMP.START_JOB(h2);
  dbms_datapump.detach(h2);
END; 

错误输出为

代码语言:javascript
复制
 ORA-39001: invalid argument value
 ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
 ORA-06512: at "SYS.DBMS_DATAPUMP", line 3507
 ORA-06512: at "SYS.DBMS_DATAPUMP", line 3756

当'sys‘和'datapump_dir’创建语句成功执行时,我已连接。

我做错了什么?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-10 21:57:25

如果有人对此感兴趣,我找到了问题的原因。由于某些原因,即使我指定了默认目录,它也无法工作。但是,当我将null传递给这个参数时,它就可以工作了。下面的代码可以工作,唯一的缺点是我只能保存到默认目录

代码语言:javascript
复制
DECLARE
  h2 NUMBER;
BEGIN
  h2 := DBMS_DATAPUMP.OPEN('EXPORT', 'SCHEMA');
  DBMS_DATAPUMP.ADD_FILE(h2, 'example0.dmp', null);
  DBMS_DATAPUMP.METADATA_FILTER(h2,'SCHEMA_EXPR', q'{IN ('SC900')}');
  DBMS_DATAPUMP.START_JOB(h2);
  DBMS_DATAPUMP.DETACH(h2);
END;
/
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48187541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档