1、這是oracle的規(guī)定,不能對(duì)執(zhí)行觸發(fā)器的表進(jìn)行操作。
可以對(duì)new.xxx進(jìn)行操作啊,對(duì)于oracle行級(jí)觸發(fā)器(for each row),不能對(duì)本表做任何操作,包括讀取
原則:
在before insert觸發(fā)器中,可以實(shí)現(xiàn)對(duì)本表的訪(fǎng)問(wèn);
在after insert觸發(fā)器中,不能實(shí)現(xiàn)對(duì)本表的訪(fǎng)問(wèn);
在before/after update/delete觸發(fā)器中,都不能實(shí)現(xiàn)對(duì)本表的訪(fǎng)問(wèn)
其實(shí)原因很簡(jiǎn)單,就是為了防止臟讀
2、寫(xiě)oracle行級(jí)觸發(fā)器時(shí),不能操作本表,報(bào)表 *** 發(fā)生了變化,觸發(fā)器/函數(shù)不能讀"的錯(cuò)誤的解決辦法
原因已經(jīng)很明顯了就是行級(jí)的觸發(fā)器代碼中不能操作該表,包括select,是挺郁悶的
當(dāng)然解決方法就是要根據(jù)原因了,正因?yàn)橄薅诵屑?jí)觸發(fā)器的操作,只能選擇表級(jí)的觸發(fā)器了,但是在表級(jí)的觸發(fā)器又不能獲得:new和:old的值,那就只能采取兩種觸發(fā)器并用的方法了,并且還要包或者臨時(shí)表加以輔助.
首先在行級(jí)觸發(fā)器中將所需的,:new或者:old的值,寫(xiě)到包或者臨時(shí)表中
然后在表級(jí)觸發(fā)器中處理包或者臨時(shí)表中已經(jīng)寫(xiě)入的數(shù)據(jù),操作成功后可以按照需求再刪除臨時(shí)表的數(shù)據(jù).
3、 ORACLE 觸發(fā)器
ORACLE產(chǎn)生數(shù)據(jù)庫(kù)觸發(fā)器的語(yǔ)法為:
create [or replace] trigger 觸發(fā)器名 觸發(fā)時(shí)間 觸發(fā)事件
on 表名
[for each row]
pl/sql 語(yǔ)句
其中:
觸發(fā)器名:觸發(fā)器對(duì)象的名稱(chēng)。由于觸發(fā)器是數(shù)據(jù)庫(kù)自動(dòng)執(zhí)行
的,因此該名稱(chēng)只是一個(gè)名稱(chēng),沒(méi)有實(shí)質(zhì)的用途。
觸發(fā)時(shí)間:指明觸發(fā)器何時(shí)執(zhí)行,該值可?。?br/>before---表示在數(shù)據(jù)庫(kù)動(dòng)作之前觸發(fā)器執(zhí)行;
after---表示在數(shù)據(jù)庫(kù)動(dòng)作之后出發(fā)器執(zhí)行。
觸發(fā)事件:指明哪些數(shù)據(jù)庫(kù)動(dòng)作會(huì)觸發(fā)此觸發(fā)器:
insert:數(shù)據(jù)庫(kù)插入會(huì)觸發(fā)此觸發(fā)器;
update:數(shù)據(jù)庫(kù)修改會(huì)觸發(fā)此觸發(fā)器;
delete:數(shù)據(jù)庫(kù)刪除會(huì)觸發(fā)此觸發(fā)器。
表 名:數(shù)據(jù)庫(kù)觸發(fā)器所在的表。
for each row:對(duì)表的每一行觸發(fā)器執(zhí)行一次。如果沒(méi)有這一
選項(xiàng),則只對(duì)整個(gè)表執(zhí)行一次。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站jinyejixie.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)頁(yè)標(biāo)題:Oracle觸發(fā)器學(xué)習(xí)記錄-創(chuàng)新互聯(lián)
轉(zhuǎn)載來(lái)源:http://jinyejixie.com/article28/dedgjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、用戶(hù)體驗(yàn)、外貿(mào)建站、商城網(wǎng)站、域名注冊(cè)、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容