変更通知リスナーを表に登録しようとしています。私はテーブルのリスナーを作成するために見てきた中で唯一の方法は、特定の変数にデータを選択することです:空の表のoracleへの変更通知の登録
SELECT employee_id
INTO v_employee_id
FROM hr.employees
WHERE ROWNUM < 2;
ここの表は、少なくとも 1行を持っている必要があります。
フル宣言:Oracleのドキュメントから
DECLARE
v_cn_recip SYS.CHNF$_REG_INFO;
v_regid NUMBER;
v_employee_id hr.employees.manager_id%TYPE;
BEGIN
v_cn_recip := SYS.CHNF$_REG_INFO('hr.dcn_callback', DBMS_CHANGE_NOTIFICATION.QOS_ROWIDS, 0, 0, 0);
v_regid := DBMS_CHANGE_NOTIFICATION.NEW_REG_START(v_cn_recip);
SELECT employee_id
INTO v_employee_id
FROM hr.employees
WHERE ROWNUM < 2;
DBMS_CHANGE_NOTIFICATION.REG_END;
DBMS_OUTPUT.PUT_LINE('the registration id for this query is '||v_regid);
END;
/
次のようhttps://docs.oracle.com/cd/B19306_01/appdev.102/b14251/adfns_dcn.htm
私の質問は:空のテーブルに変更通知リスナを登録する方法はありますか?そうでない場合、これは特定の理由により設計によって行われましたか?
これは完全に動作します。リスナーを登録するためには、テーブルのクエリが必要になるというのはとても独特なことです。これに答える時間をとってくれてありがとう、本当にありがとう!もし私ができるなら、私は公に投票するだろう。 – skylerto