问题:

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORA-31634: job already exists (作业已存在)
ORA-31664: unable to construct unique job name when defaulted (如果采用默认值, 将无法构造唯一的作业名)

查找资料,解决方法如下:

su - oracle

sqlplus / as sysdba

第1步:查询确认DBA_DATAPUMP_JOBS

SQL>  SELECT OWNER_NAME, JOB_NAME, OPERATION, JOB_MODE,STATE, ATTACHED_SESSIONS FROM DBA_DATAPUMP_JOBS ORDER BY 1,2;

第2步:生成清理DBA_DATAPUMP_JOBS的SQL语句

SELECT 'DROP TABLE ' || OWNER_NAME ||'.'|| JOB_NAME ||';' FROM DBA_DATAPUMP_JOBS WHERE STATE='NOT RUNNING';

格式:DROPTABLE'||OWNER_NAME||'.'||JOB_NAME||';
DROP TABLE SYSTEM.SYS_EXPORT_SCHEMA_01;
DROP TABLE SYSTEM.SYS_EXPORT_SCHEMA_02;
DROP TABLE SYSTEM.SYS_EXPORT_SCHEMA_19;
DROP TABLE SYSTEM.SYS_EXPORT_SCHEMA_03;
DROP TABLE SYSTEM.SYS_EXPORT_SCHEMA_04;
DROP TABLE SYSTEM.SYS_EXPORT_SCHEMA_05;
DROP TABLE SYSTEM.SYS_EXPORT_SCHEMA_06;
DROP TABLE SYSTEM.SYS_EXPORT_SCHEMA_07;
DROP TABLE SYSTEM.SYS_EXPORT_SCHEMA_08;
 已选择8行。

第3步: 清理后再次查询确认DBA_DATAPUMP_JOBS是否清理完毕

SQL>  SELECT OWNER_NAME, JOB_NAME, OPERATION, JOB_MODE,STATE, ATTACHED_SESSIONS FROM DBA_DATAPUMP_JOBS ORDER BY 1,2;
未选定行

PS:如果清理失败,则执行如下语句进行处理

EXEC DBMS_DATAPUMP.STOP_JOB(DBMS_DATAPUMP_ATTACH('SYS_EXPORT_SCHEMA_02','OAK'));

参考:# Oracle——ORA-31634: 作业已存在

最后修改:2021 年 08 月 04 日
如果觉得我的文章对你有用,请随意赞赏