Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > SQL Repair Advisor и DBMS_SQLDIAG


Автор: Rutti 18.3.2022, 20:39
Добрый день!

Не получается провести восстановление с помощью SQL Repair Advisor ни средствами DBMS_SQLDIAG, ни Enterprise Manager'ом.

Пробую по аналогии с примером (www.dba-oracle.com/t_advanced_sql_repair_advisor.htm) провести эти операции, но в отчете вместо рекомендаций advisor'a получаю сообщение "No SQL patch was found to resolve the problem".

Код:
Код

DELETE FROM hr.employees WHERE ROWID <> (SELECT MAX(ROWID) FROM hr.employees GROUP by employee_id);


Код

DECLARE
  report_out clob;
  task_id varchar2(50);
BEGIN
  task_id := DBMS_SQLDIAG.CREATE_DIAGNOSIS_TASK(
    sql_text => 'DELETE FROM hr.employees WHERE ROWID <> (SELECT MAX(ROWID) FROM hr.employees GROUP by employee_id)',
    task_name=>'test_task1',
    problem_type=>dbms_sqldiag.problem_type_compilation_error);
END;
/


Код

exec dbms_sqldiag.execute_diagnosis_task('test_task1');
DECLARE
 rep_out CLOB;
BEGIN
  rep_out := dbms_sqldiag.report_diagnosis_task('test_task1', dbms_sqldiag.type_text);
  dbms_output.put_line('Report : ' || rep_out);
END;
/


Соответственно не получается выполнить код для принятия исправлений:
Код

exec dbms_sqldiag.accept_sql_patch (task_name => 'test_task1',task_owner => 'SYS');


Использование отключения/включения исправления ошибок тоже не помогает (не понимаю, как понять какое число указывать на месте 4728348 - взято из аналогичного примера книги Алапати С.).
Код

ALTER SESSION SET "_FIX_CONTROL"='4728348:OFF'


Помогите, пожалуйста, разобраться, как на примере этой команды DELETE (или другой команды, которая сможет привести к критической ошибке) получить рекомендации и применить исправления. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)