将表添加到现有注册
前一部分介绍了如何使用更改通知服务使数据库在注册对象(在以上示例中为 ORDERS
表)发生更改时发出通知。但从性能角度而言,客户端应用程序可能更希望缓存 ORDER_ITEMS 表而非 ORDERS
表本身的查询结果集,这是因为它在每次访问订单时,不得不从 ORDERS 表中只检索一行,但同时必须从 ORDER_ITEMS
表中检索多个行。在实际情况中,订单可能包含数十个甚至数百个订单项。
由于您已经对 ORDERS 表注册了查询,因此不必再创建一个注册来注册对
ORDER_ITEMS 表的查询了。相反,您可以使用现有注册。为此,您首先需要检索现有注册的 ID。可以执行以下查询来完成此工作:
SELECT regid, table_name FROM user_change_notification_regs;结果可能如下所示:
REGID TABLE_NAME <br>----- -------------- <br>241 OE.ORDERS <br>获取注册 ID 后,可以使用 DBMS_CHANGE_NOTIFICATION.ENABLE_REG
函数将一个新对象添加到该注册,如下所示:
DECLARE <br>ord_id NUMBER; <br>BEGIN <br>DBMS_CHANGE_NOTIFICATION.ENABLE_REG(241); <br>SELECT order_id INTO ord_id FROM order_items WHERE ROWNUM < 2; <br>DBMS_CHANGE_NOTIFICATION.REG_END; <br>END; <br>/ <br>完成了!从现在开始,数据库将生成一个通知来响应对 ORDERS 和 ORDER_ITEMS 所做的任何更改,并调用
orders_nf_callback 过程来处理通知。因此,下一步就是编辑 orders_nf_callback,以便它可以处理因对 ORDER_ITEMS
表执行 DML 操作而生成的通知。但在重新创建 orders_nf_callback 过程之前,您需要创建以下将在更新过程中引用的表类型:
CREATE TYPE rdesc_tab AS TABLE OF SYS.CHNF$_RDESC;然后,返回清单
2,在以下代码行之后:
IF (tblname = 'OE.ORDERS') THEN <br>FOR j IN 1..numrows LOOP <br>row_id := ntfnds.table_desc_array(i).row_desc_array(j).row_id; <br>SELECT order_id INTO ord_id FROM orders WHERE rowid = row_id; <br>sendNotification(url, tblname, ord_id); <br>END LOOP; <br>END IF; <br>插入以下代码:
IF (tblname = 'OE.ORDER_ITEMS') THEN <br>
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
刺客信條陰影:貝殼謎語解決方案
2 週前ByDDD
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3漢化版
中文版,非常好用

SublimeText3 Linux新版
SublimeText3 Linux最新版

禪工作室 13.0.1
強大的PHP整合開發環境