DBMS_CHANGE_NOTIFICATION 问题,100分求答案
DECLARE
l_regds SYS.CHNF$_REG_INFO;
l_regid NUMBER;
l_qosflags NUMBER;
l_id NUMBER;
l_id1 NUMBER;
l_id2 NUMBER;
BEGIN
l_qosflags := DBMS_CHANGE_NOTIFICATION.QOS_RELIABLE +
DBMS_CHANGE_NOTIFICATION.QOS_ROWIDS;
l_regds := SYS.CHNF$_REG_INFO ('tables_changed_chnt', l_qosflags, 0,0,0);
l_regid := DBMS_CHANGE_NOTIFICATION.new_reg_start (l_regds);
SELECT 1 into l_id FROM businesssystemrunningtime5min where rownum=1;
select 1 into l_id1 from TB_LOOK_TABLE where rownum = 1;
select 1 into l_id2 from ttt_111 where rownum = 1;
DBMS_CHANGE_NOTIFICATION.reg_end;
dbms_output.put_line(l_regid);
END;
同时注册3个表的变更通知,TB_LOOK_TABLE与ttt_111表可以检测到变更.businesssystemrunningtime5min表无法检测,将该表表名改成business后就可以监控到.
请问各位大拿,这个表名的长度有限制么? 怎么处理? 由于是监控其他厂家的表,所以不可能改名,求答!
------解决方案--------------------好像oracle表名长度最大30吧,但是你那也才29啊、、
------解决方案--------------------会不会 存放注册表的更改记录的表的字段限制了最大长度?
------解决方案----------------------将该表表名改成business后就可以监控到.
不可能改名的话可以考虑试一下用同义词