Я пытаюсь зарегистрироваться для уведомления об изменении СУБД, однако я получаю сообщение об ошибке, в котором говорится, что необходимо объявить DBMS_CHANGE_NOTIFICATION.
Ниже приведен мой код SQL:
DECLARE
regid NUMBER;
BEGIN
--Deregister any existing change notification...
BEGIN
SELECT regid INTO regid FROM dba_change_notification_regs WHERE LOWER(table_name) LIKE '%aws_app_change_notif';
IF (regid IS NOT NULL) THEN
DBMS_OUTPUT.PUT_LINE('Deregistered aws_app_change_notif');
DBMS_CHANGE_NOTIFICATION.DEREGISTER(regid);
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('No change notification found for table aws_app_change_notif');
END;
--Register change notification...
DECLARE
regds SYS.CHNF$_REG_INFO;
regid NUMBER;
dept_id NUMBER;
qosflags NUMBER;
operations_filter NUMBER;
max_id NUMBER;
BEGIN
qosflags := DBMS_CHANGE_NOTIFICATION.QOS_RELIABLE + DBMS_CHANGE_NOTIFICATION.QOS_ROWIDS;
operations_filter := DBMS_CHANGE_NOTIFICATION.INSERTOP;
regds := SYS.CHNF$_REG_INFO ('aws_app_change_notif_callback', qosflags, 0,operations_filter,0);
regid := DBMS_CHANGE_NOTIFICATION.NEW_REG_START (regds);
SELECT max(id) INTO max_id FROM aws_app_change_notif;
DBMS_CHANGE_NOTIFICATION.REG_END;
END;
END;
, и после выполнения я получаюошибка ниже:
DBMS_CHANGE_NOTIFICATION.DEREGISTER (regid);ОШИБКА в строке 9:
ORA-06550: строка 9, столбец 13: PLS-00201: идентификатор 'DBMS_CHANGE_NOTIFICATION' должен быть объявлен
ORA-06550: строка 9, столбец 13: PL /SQL: оператор игнорируется
ORA-06550: строка 25, столбец 21: PLS-00201: должен быть объявлен идентификатор 'DBMS_CHANGE_NOTIFICATION'
ORA-06550: строка 25, столбец 9: PL / SQL: Оператор игнорируется
ORA-06550: строка 26, столбец 30: PLS-00201: должен быть объявлен идентификатор 'DBMS_CHANGE_NOTIFICATION'
ORA-06550: строка 26, столбец 9: PL / SQL:Инструкция игнорируется
ORA-06550: строка 28, столбец 18: PLS-00201: должен быть объявлен идентификатор 'DBMS_CHANGE_NOTIFICATION'
ORA-06550: строка 28, столбец 9: PL / SQL: инструкцияигнорируется
ORA-06550: строка 29, столбец 41: PL / SQL: ORA-00942: таблица или представление не существует
ORA-06550: строка 29, столбец 9: PL / SQL: Оператор SQL игнорируется
ORA-06550: строка 30, столбец 9: PLS-00201: идентификатор 'DBMS_CHANGE_NOTIFICATION' должен быть объявлен
ORA-06550: строка 30, столбец 9: PL / SQL: оператор игнорируется
Я использую Oracle Database 18c Express Edition, выпуск 18.0.0.0.0 - Производство как моя база данных.
Может кто-нибудь посоветовать, что здесь происходит.