IBM DB2通用數(shù)據(jù)庫(kù)中實(shí)現(xiàn)會(huì)話間的警告之設(shè)計(jì)概述
以下的文章主要是介紹IBM DB2通用數(shù)據(jù)庫(kù)中實(shí)現(xiàn)會(huì)話間的警告之設(shè)計(jì)概述,在某些時(shí)候你是否正將你的數(shù)據(jù)庫(kù)從Oracle數(shù)據(jù)庫(kù)遷移至 IBM® DB2® Universal Database™?您是否認(rèn)為可能會(huì)丟失 Oracle 的某個(gè)特殊功能?
DB2 UDB 就是這樣一種十分靈活的數(shù)據(jù)庫(kù),它可以滿足您的許多需要。在本文中,我將介紹一下如何實(shí)現(xiàn)一個(gè)稱為警告的功能。警告用于允許多重會(huì)話之間的通信。
警告概述
警告是為在會(huì)話間傳遞消息而設(shè)計(jì)的。警告標(biāo)識(shí)、會(huì)話標(biāo)識(shí)和消息存儲(chǔ)在表中(這里是 alerts.dbms_alert_info)。消息由一個(gè)會(huì)話發(fā)送再由另一個(gè)會(huì)話讀取,這個(gè)過(guò)程由一個(gè)在指定表中設(shè)置的標(biāo)志來(lái)控制。在設(shè)計(jì)參數(shù)(像列長(zhǎng)度、主機(jī)變量長(zhǎng)度、輪詢時(shí)間間隔等)時(shí)需要了解 Oracle 到 DB2 的遷移情況。您可以根據(jù)需要增加警告名和消息長(zhǎng)度的大小。
IBM DB2通用數(shù)據(jù)庫(kù)中實(shí)現(xiàn)會(huì)話間的警告之設(shè)計(jì)概述
以下對(duì)象在實(shí)現(xiàn)類似 Oracle 具有的警告功能時(shí)都是必需的。所有對(duì)象都包含在本文的 下載部分中:
存儲(chǔ)警告信息的表: alerts.dbms_alert_info
注冊(cè)警告的存儲(chǔ)過(guò)程: alerts.register
刪除警告的存儲(chǔ)過(guò)程: alerts.remove和 alerts.delete
發(fā)送警告消息的存儲(chǔ)過(guò)程: alerts.signal
接收警告消息的存儲(chǔ)過(guò)程: alerts.waitone和 alerts.waitany
實(shí)現(xiàn)延遲的 UDF: alerts.delay
實(shí)現(xiàn)會(huì)話標(biāo)識(shí)的 UDF: alerts.session_id
您可以更改我的設(shè)計(jì)以滿足自己的特殊要求。所有對(duì)象都使用了一個(gè)共同的模式,即警告。設(shè)計(jì)存儲(chǔ)過(guò)程以便您可以擴(kuò)展它們來(lái)捕獲 SQLCODE、SQLSTATE 和 ERROR_MESSAGE。大量的異常處理在上面列出的所有存儲(chǔ)過(guò)程中實(shí)現(xiàn),但是這里并沒(méi)有使用到。您可以取消樣本代碼中異常處理部分的注釋然后再使用該部分。
它們也可以返回相應(yīng)的返回碼,以便用主語(yǔ)言實(shí)現(xiàn)必需的操作。游標(biāo)可以在所有存儲(chǔ)過(guò)程中實(shí)現(xiàn),但是在一些地方您可能希望更改為 fullselect。所有警告對(duì)象都被授予了公共執(zhí)行(Public execute)許可權(quán)。您應(yīng)該使用 DBADM 或 SYSADM 權(quán)限創(chuàng)建所有這些對(duì)象。 以上的相關(guān)內(nèi)容就是對(duì)IBM DB2通用數(shù)據(jù)庫(kù)中實(shí)現(xiàn)會(huì)話間的警告之設(shè)計(jì)概述 的介紹,望你能有所收獲。
上述的相關(guān)內(nèi)容就是對(duì)IBM DB2通用數(shù)據(jù)庫(kù)中實(shí)現(xiàn)會(huì)話間的警告之設(shè)計(jì)概述 的描述,希望會(huì)給你帶來(lái)一些幫助在此方面。
【編輯推薦】