我正在尝试注册DBMS更改通知,但是我在提到必须声明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栏:请-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:语句被忽略
我使用OracleDatabase18c速成版18.0.0.0.0 -生产作为我的数据库。
有人能告诉我这里出了什么问题吗。
发布于 2019-04-10 01:56:59
https://stackoverflow.com/questions/55602900
复制相似问题