We're using DatabaseChangeListener,但是对于一个实例,我们希望能够在返回的查询值上触发侦听器。具体来说,我们有一个查询返回需要执行某个操作的秒数,所以我们希望在返回的秒数为0时触发一个侦听器。这可以用DatabaseChangeListener吗?
我尝试将查询直接插入stmt.executeQuery( QUERY_STRING );
,但这只会导致ORA-29983: Unsupported query for Continuous Query Notification
,这看起来很模糊。以下是查询是否有帮助。
select
(case
when ns.daycode is null
then sysdate
when greatest(jts.todate(n.transdate) + ns.delay, sysdate, trunc(sysdate)+ns.starttime) < trunc(sysdate)+ns.endtime
then greatest(jts.todate(n.transdate) + ns.delay, sysdate, trunc(sysdate)+ns.starttime)
else trunc(sysdate)+1
end - sysdate) * 86400 as deliverytime
from notices n
left join noticeschedule ns
on (n.noticetype = ns.noticetype and
n.noticedeliverytype = ns.noticedeliverytype and
n.instbit = ns.instbit and
to_char(sysdate, 'D') = ns.daycode)
where n.noticetype in ('RR', 'RC')
and n.instbit = 965
and n.processed = 'N';