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

相关推荐
—Miss. Z—4 小时前
计算机二级MySQL——基本操作题
数据库·mysql·oracle
G.O.G.O.G20 小时前
《LeetCode SQL 从入门到进阶(MySQL)》06(下)
数据库·sql·oracle
Leon-Ning Liu1 天前
【真实经验分享】Oracle RAC 修改 db_file_name_convert / log_file_name_convert 参数实践
数据库·oracle
Leon-Ning Liu1 天前
【真实经验分享】Oracle RAC + ASM 下 db_recovery_file_dest 路径格式导致 ORA-01261 无法 NOMOUNT
数据库·oracle
踏月的造梦星球2 天前
DMHS同步原理与DM8到DM8基础搭建
数据库·oracle
微三云 - 廖会灵 (私域系统开发)2 天前
电商系统监控告警体系从0到1:Prometheus+Grafana+AlertManager的全链路可观测性实践
oracle·grafana·prometheus
G.O.G.O.G2 天前
LeetCode SQL 从入门到精通(MySQL)05(下)
数据库·sql·oracle
alxraves2 天前
医院远程会诊系统:数据库模块设计与实现
数据库·oracle
苦瓜汤补钙2 天前
Oracle JDK8 环境配置-Win11
开发语言·数据库·笔记·oracle
️学习的小王2 天前
MySQL 数据库基础操作全解:从建库到增删改查
数据库·mysql·oracle