Возможно, вам просто нужно зафиксировать ваше зарегистрированное сообщение в процедуре.
Ведение журнала - это один из немногих случаев, когда автономная транзакция действительна: обычно мы хотим регистрировать наши сообщения без вмешательства в транзакцию, которую мы регистрируем.
Кроме того, вам не нужноиспользовать динамический SQL здесь.Просто обратитесь к параметрам в предложении VALUES.
CREATE OR REPLACE PROCEDURE proc_test_status_table(
p_test_description IN VARCHAR2,
p_test_status IN varchar2)
AS
l_sql VARCHAR2(4000);
PRAGMA autonomous_transaction;
BEGIN
insert into test_status_table(test_description, test_status)
values ( p_test_description, p_test_status);
commit;
END;
/
Какое значение здесь AUTONOMOUS_TRANSACTION?ОП, по-видимому, создает основу для тестирования.С автономной транзакцией мы можем сохранить сообщение журнала, не затрагивая более широкую транзакцию, то есть тест.Передача сообщений журнала без прагмы AUTONOMOUS_TRANSACTION может иметь побочные эффекты, которые могут нарушить другие тесты (такие как ORA-01022, ORA-1555) или просто усложнить разбор.