powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как удалить Job DATAPUMP
2 сообщений из 2, страница 1 из 1
Как удалить Job DATAPUMP
    #35523916
eml78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулся с такой проблемой - в таблице DBA_DATAPUMP_JOBS присутствует ряд записей (в соотв. схеме есть мастер таблицы), стаутус которых NOT RUNNING пытаюсь. Сессий которые к ним подключены вроде нет (в таблице тоже 0).
Пытаюсь их удалить.
Делаю так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
DECLARE
  ind NUMBER;              -- Loop index
  JobHandle NUMBER;
  job_state VARCHAR2( 30 );  -- To keep track of job state
  le ku$_LogEntry;         -- For WIP and error messages
  js ku$_JobStatus;        -- The job status from get_status
  sts ku$_Status;          -- The status object returned by get_status
  ERROR NUMBER;
BEGIN
  BEGIN
    JobHandle := SYS.DBMS_DATAPUMP.ATTACH(job_name=>'SYS_EXPORT_FULL_04', job_owner=>'SYSTEM');
    ERROR :=  0 ;
  EXCEPTION
    WHEN OTHERS THEN
      ERROR :=  1 ;
      DBMS_OUTPUT.put_line('ERROR');
      dbms_datapump.get_status(NULL,
        dbms_datapump.ku$_status_job_error +
        dbms_datapump.ku$_status_job_status +
        dbms_datapump.ku$_status_wip, 0 ,job_state,sts);
      js := sts.job_status;
      DBMS_OUTPUT.put_line(job_state);
      if (bitand(sts.mask,dbms_datapump.ku$_status_wip) !=  0 ) then
        le := sts.wip;
      elsif (bitand(sts.mask,dbms_datapump.ku$_status_job_error) !=  0 ) then
        le := sts.error;
      else
        le := null;
      end if;
      if le is not null then
        ind := le.FIRST;
        while ind is not null loop
          dbms_output.put_line(le(ind).LogText);
          ind := le.NEXT(ind);
        end loop;
      end if;
  END;  
--  IF ERROR = 0 THEN
    SYS.DBMS_DATAPUMP.STOP_JOB(JobHandle,  1 ,  0 );
    SYS.DBMS_DATAPUMP.detach(JobHandle);
--  END IF;  
END;
/
Получаю например (бывают и другие ошибки)
Код: plaintext
1.
2.
3.
4.
5.
6.
ERROR

ORA- 39002 : недопустимая операция
ORA- 39068 : недопустимые данные главной таблицы в строке с PROCESS_ORDER=- 59 
ORA- 39150 : неверное время flashback
ORA- 00907 : отсутствует правая скобка
Хотелось бы понять как в общем случае удалять такие (созданные с ошибками) задания?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как удалить Job DATAPUMP
    #39942905
Olyap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
для истории:

drop table owner_name.job_name


https://www.oracle-scripts.net/cleanup-orphaned-datapump-jobs/
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как удалить Job DATAPUMP
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]