В блоке регистрации (от DBMS_CHANGE_NOTIFICATION.NEW_REG_START
до DBMS_CHANGE_NOTIFICATION.REG_END
) вам необходимо выполнить простой запрос к таблице CONTENT, чтобы зарегистрировать свой интерес к изменениям в этой таблице, например:
SELECT select NL_CONTENT_ID into NL_CONTENT from CONTENT WHERE ROWNUM = 1;
Доступ по ROWID очень быстрый. Поэтому я не вижу возможности сэкономить время, за исключением того, что вы можете объединить два запроса в один:
select NL_CONTENT_ID, EVENT_STATUS_CODE into NL_CONTENT, STATUS from CONTENT
where ROWID = Row_id;
Обратите внимание, что я изменил предложение WHERE: это ROWID, а не ROWNUM.
Кстати: линия:
REGDS := SYS.CHNF$_REG_INFO ('SP_EVENT_GENERATE', qosflags, 0,0,0);
вероятно, должно быть:
REGDS := SYS.CHNF$_REG_INFO ('TABLES_CHANGED_CHNT', qosflags, 0,0,0);
или ваша хранимая процедура должна быть переименована в SP_EVENT_GENERATE
.