В 10.2 появилось логирование ошибок при выполнение DML команд INSERT, UPDATE, MERGE и DELETE.
Если DML-операция при массовой обработке данных вызывает ошибки при добавлении или изменении, какой либо записи, то вся операция DML будет отменена. Новая инструкция — LOG ERRORS, предназначена для обхода подобных ситуация. Если в процессе выполнения DML операции возникает ошибка, то информация о ней запишется в заранее созданную (при помощи пакета DBMS_ERRLOG) таблицу логов, на которую указывает конструкция LOG ERRORS.
Читать дальше про “DML Error Logging” »
Для удобного доступа к логу и xml канкарента, можно использовать следующий запрос
SELECT get_log_bfile('l' || x.request_id || '.req') as log_date,
get_xml_bfile('o' || x.request_id || '.out') as xml_date
FROM fnd_concurrent_requests x
WHERE x.request_id = :p_request_id
Но перед его использованием следует создать директории для доступа к файлам:
create or replace directory CUNCURRENT_XML
as '/oracle/NAME_INSTANCE/inst/apps/NAME/logs/appl/conc/out';
create or replace directory CUNCURRENT_LOG
as '/oracle/NAME_INSTANCE/inst/apps/NAME/logs/appl/conc/log';
и сами функции
create or replace function get_log_bfile(p_filename in varchar2)
return bfile as
l_bfile bfile := bfilename('CUNCURRENT_LOG',p_filename);
begin
return l_bfile;
end;
/
create or replace function get_xml_bfile(p_filename in varchar2 )
return bfile as
l_bfile bfile := bfilename('CUNCURRENT_XML',p_filename);
begin
return l_bfile;
end;
/
-- Вывод сообщения в лог
procedure output_log_data(p_log_str in varchar2) is
g_output_dbms number := 1; -- Вывод сообщений в dbms_output.put_line
g_output_oebs number := 2; -- Вывод сообщений в fnd_file.put_line
v_output_current number := g_output_oebs;
begin
if fnd_global.conc_request_id = -1 then
v_output_current := g_output_dbms;
end if;
if v_output_current = g_output_dbms then
dbms_output.put_line(p_log_str);
elsif v_output_current = g_output_oebs then
--fnd_file.put_line(fnd_file.output, p_log_str); --Строка выводится в "Просмотр Результатов"
fnd_file.put_line(fnd_file.log, p_log_str); --Строка выводится в "Просмотр Журнала"
end if;
end output_log_data;
Последние комментарии