ORA-39012: Client detached EXPDP stop task DBMS_DATAPUMP

ORA-39012: Client detached 没有成功启动task,不会进行imp的任何操作

impdp出现连接信息后,会开始执行truncate table 后import动作,这个时候几十abort /stop,在执行的表依旧会完成import,可以参考log里面的信息。 abort /stop只对未执行的table 生效,v$session中可以查看session 信息。

impdp中途取消要小心,很容易数据重复导入了。

Applies To

All Users

Oracle Database - Enterprise Edition - Version 10.2.0.1 to Version 11.1.0.7

Summary

When using DataPump API the following errors are received:

ORA-39232: invalid remap function: NewUDFValExt

ORA-39012: Client detached before the job started.

Please note that the function name will be replaced with your defined function name. In our example it is 'NewUDFValExt'.

Solution

The Bug 8751620 (closed as 'Not a bug') was filed for this case and development has informed that this is an expected behavior when it comes to Datapump API being called inside PL/SQL block.

Datapump API expects the function name in UPPER case when this is called inside PL/SQL block. In this case the function name (NewUDFValExt) is passed in mixed case letters. There are no issues when the function name ('NewUDFValExt') is passed in UPPER case characters, e.g:

DBMS_DATAPUMP.data_remap (h1, 'COLUMN_FUNCTION', 'UDF_VAL_TEST', 'UDF_VAL_EXT', 'NEWUDFVALEXT', 'TEST');

Cause

Test to reproduce:

connect / as sysdba

create user test identified by <PASSWORD>;

grant connect, resource,dba to test;

CREATE or replace DIRECTORY DMPDIR AS '/tmp';

GRANT READ, WRITE ON DIRECTORY DMPDIR TO test;

connect test/<PASSWORD>

create table UDF_VAL_TEST

(

UDF_VAL_ID NUMBER(10) not null,

UDF_VAL_EXT NVARCHAR2(2000)

);

Insert into UDF_VAL_TEST(UDF_VAL_ID, UDF_VAL_EXT) values (1, 'val1');

Insert into UDF_VAL_TEST(UDF_VAL_ID, UDF_VAL_EXT) values (2, 'val2');

Insert into UDF_VAL_TEST(UDF_VAL_ID) values (3);

Insert into UDF_VAL_TEST(UDF_VAL_ID,UDF_VAL_EXT) values (4, 'val4');

Insert into UDF_VAL_TEST(UDF_VAL_ID) values (5);

commit;

DECLARE

h1 NUMBER;

begin

h1 := DBMS_DATAPUMP.open ('EXPORT', 'TABLE', NULL, 'MY_EXPORT_JOB1', 'COMPATIBLE');

-- specify dump file

DBMS_DATAPUMP.add_file (h1, 'UDFVAL1.dmp', 'DMPDIR', '10M', DBMS_DATAPUMP.KU$_FILE_TYPE_DUMP_FILE);

-- specify log file

DBMS_DATAPUMP.add_file (h1, 'Export1.log', 'DMPDIR', '10M', DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE);

DBMS_DATAPUMP.metadata_filter (h1, 'NAME_EXPR', 'IN(''UDF_VAL_TEST'')');

DBMS_DATAPUMP.data_remap (h1, 'COLUMN_FUNCTION', 'UDF_VAL_TEST', 'UDF_VAL_EXT', 'NewUDFValExt', 'TEST');

DBMS_DATAPUMP.start_job(h1);

commit;

end;

/

This returns:

ERROR at line 1:

ORA-39001: invalid argument value

ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79

ORA-06512: at "SYS.DBMS_DATAPUMP", line 3043

ORA-06512: at "SYS.DBMS_DATAPUMP", line 3813

ORA-06512: at line 14

The log file contains the following errors:

ORA-39232: invalid remap function: NewUDFValExt

ORA-39012: Client detached before the job started.

DataPump API expects the function name in UPPER case when this is called inside PL/SQL block.

References

MOS document id: 879153.1

相关推荐
小脑斧12344 分钟前
Oracle透明网关,亲测好用
oracle
whn19772 小时前
虚拟机搭建达梦dsc第二版
数据库·oracle
猫的玖月3 小时前
SQL语法简介
数据库·sql·oracle
TO_ZRG3 小时前
Android Content Provider 基础
android·jvm·oracle
小脑斧1234 小时前
DBExport2.51 Oracle数据库查询与Excel数据导出工具
数据库·oracle·excel
摇滚侠5 小时前
Oracle 标准结构 一个项目 一个用户 一个表空间
数据库·oracle
FinTech老王5 小时前
突破批处理瓶颈:KingbaseES并行DML技术如何榨干多核CPU性能
数据库·安全·oracle
Irene19911 天前
SQL查询优化:NOT EXISTS与LEFT JOIN性能对比
oracle·哈希算法
2301_800976931 天前
数据库的基本操作
数据库·sql·oracle
cyber_两只龙宝1 天前
【Oracle】Oracle之使用DML语言管理表
linux·运维·服务器·数据库·云原生·oracle