Oracle 12c ПОСЛЕ ВСТАВКИ ИЛИ ОБНОВЛЕНИЯ ТРИГГЕРА - PullRequest
0 голосов
/ 06 марта 2019

У меня есть следующий триггер, который обновляется, но откатывается автоматически, я не могу найти причину, любезно помогите.

Справка: обновление таблицы UDF_DATA имеет ссылку на внешний ключ CCEX.CUSTOMERТаблица запуска.

CREATE OR REPLACE TRIGGER TR_CUSTOMER_PM
AFTER INSERT OR UPDATE ON CCEX.CUSTOMER FOR EACH ROW
DECLARE
  i_subscriber_id     Number :=3080;
  user_xcep EXCEPTION;
  PRAGMA EXCEPTION_INIT( user_xcep, -20001 );
  pragma autonomous_transaction;
  i_syscode ccex.customer.cust_system_code%type;
BEGIN
  IF  :new.cust_account_number like 'TID%' THEN

    i_syscode:=  :new.cust_system_code;
    update udf_data set value = 'Term'
    where subscriber_id = i_subscriber_id
    and cust_system_code = i_syscode
    and entity_id = '1488_OTA'
    and udf_id = '3994_OTA'
    and name = 'Primary Manager';
  END IF;
EXCEPTION
  when others then
    raise user_xcep;
END;
/

1 Ответ

0 голосов
/ 06 марта 2019

Поскольку триггер находится в режиме autonomous_transaction, он должен закрыть транзакцию.

Пожалуйста, добавьте commit непосредственно перед строкой исключения.

...