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

相关推荐
jnrjian6 小时前
TDE HSM SET ENCRYPTION KEY
oracle
六月雨滴6 小时前
Oracle 内存优化
数据库·oracle
mN9B2uk179 小时前
数据库锁总结
数据库·oracle
闪电悠米10 小时前
黑马点评-秒杀优化-03_blocking_queue_async_order
数据库·分布式·oracle·junit·wpf·lua
abcy07121321 小时前
pycharm python sqlalchemy mysql增删改查实例csdn
数据库·oracle
烟雨归来1 天前
生僻字乱码解决方案,NVARCHAR2改造踩坑记录
oracle
每天都要进步哦1 天前
MySQL快速入门指南:从零基础到基本操作
数据库·mysql·oracle
六月雨滴1 天前
SQL 索引优化
数据库·sql·oracle·dba
chushiyunen1 天前
金庸(庸老)小说之大模型
数据库·oracle
Bert.Cai1 天前
Oracle简介
数据库·oracle