Не существует специального способа/установки Oracle для автоматического заполнения этой таблицы журналов. Поскольку он специфичен для вашего приложения, как только вы понимаете, что означают эти столбцы, вы можете добавить код в свою процедуру pl/sql для получения журналов по мере необходимости. Некоторые из столбцов просты, и обычно это выглядит так, как выглядит код.
Допустим, текущая текущая процедура выглядит примерно так ..
create or replace procedure p_INS_AN_REMEDIATION_MATRIX
as
BEGIN
insert into p_INS_AN_REMEDIATION_MATRIX(.....) values (.....);
update p_INS_AN_REMEDIATION_MATRIX set... where ...;
commit;
END;
/
Давайте возьмем некоторые столбцы журнала .. (STEP_ID, RUN_START, RUN_END, RUN_SUCCESS). Ваш код будет выглядеть примерно так после изменения
create or replace procedure p_INS_AN_REMEDIATION_MATRIX
as
procedure add_new_log (i_step_id) is
pragma autonomous_transaction;
begin
insert into MD_RUNS_STEP (i_step_id, run_start)
values (i_step_id, sysdate);
commit;
end;
procedure update_status (i_step_id, i_status)
.....
end;
v_step_id number;
BEGIN
select run_step_id_seq.nextval into v_step_id from dual;
add_new_log(v_step_id);
insert into p_INS_AN_REMEDIATION_MATRIX(.....) values (.....);
update p_INS_AN_REMEDIATION_MATRIX set... where ...;
commit;
update_status(i_step_id,'SUCCESS'); --will set the load finish time as well.
EXCEPTION
WHEN OTHERS THEN
update_status(i_step_id,'FAILURE');
--RAISE, SEND ERROR EMAIL Based on your logic.
END;
/
, как @DCookie указал (+1), Автономная сделка является идеальным вариант использования для регистрации, как это. На главную транзакцию не влияет, и вы можете в любой момент увидеть последний обновленный статус прогона.
Обычно у вас могут быть существующие пакеты, которые выполняют все эти обновления, и вам, вероятно, придется просто вызвать эти API. Спросите или посмотрите на текущую нагрузку.
Добавление строк в таблицу выполняется с помощью команды 'INSERT'. В чем именно ваш вопрос. –
@Deepthi: как указано в 'a_horse_with_no_name', вы можете вставить в' MD_RUNS_STEP' после загрузки вашего AN_REMEDIATION_MATRIX'.Or, если вы хотите регистрировать после каждой вставки, а затем использовать триггер в этой таблице. –