1樓:賓士
1、觸發器裡面不能操作本表,就是
[select billtype into bill from test_if_bill]這個是不能用的。
1)如果你是想得到新插入的記錄的值的話,請使用[:new.]
if :new.billtype = '1' then
intbill := '1';
end;
注意語法就是這個樣的,沒有[set]
2)如果你就是想得到表中的資料的話,可以用自治事務解決[觸發器裡面不能操作本表]的限制。
2、你建的本身就是insert觸發器,[if inserting then] 就不要加了。
我按照我的想法給你寫了一個供你參考,可能不符合你的業務,自己調整吧
create or replace trigger tri_gl_voucher
after insert on test_if_bill
declare
intbill number
begin
if :new.billtype='zzrk' then
intbill := '1';
end if;
if :new.billtype='ddrk' then
intbill := '2';
end if;
if :new.billtype='jkrk' then
intbill := '3';
end if;
insert into gl_voucher(pk_voucher,discardflag,pk_system,voucherkind,isdifflag,contrastflag,prepareddate,pk_corp,pk_prepared,attachment,signflag,modifyflag,detailmodflag,pk_glbook,pk_glorg,pk_glorgbook,pk_manager)
values
(:new.pk_bill,'n','gl',intbill,'n',0,:
new.coperatorid,'1021','1021cbjt000000000033',0,'n','yyy','y','0001aa10000000004vtr','0001a7100000000001t3','0001t610000000000ocv','n/a');
end tri_gl_voucher;
2樓:匿名使用者
create or replace trigger auto_insert_b
after insert on a
for each row
begin
insert into b (a, b, c) values (:new.c1, :new.c2, :new.c3);
end auto_insert_b;
3樓:匿名使用者
表a與表b欄位型別 名稱都不相同 比如將欄位1的資料放入到欄位a中??
不相同,怎麼放進去,除非你的表b的a欄位沒有資料,那就可以改型別在放進去。
如果要是number型別轉字串還行,要是字元文字轉成數字,那怎麼能實現。
4樓:匿名使用者
大哥,兩表結構都不相同,你還要插入,你想幹啥啊?
這就比如一個驢非要插猴子。。。。
死的老慘了。。。
除非你b表的欄位都是字串型的,然後a的資料強轉。
那就用insert into b(a,b,c) select 欄位1,欄位2,欄位3 from a
試試吧。
如果插入不了,那就是你表結構問題了。
5樓:匿名使用者
語法 if end 你看看那你少了什麼
oracle觸發器的問題
create or replace trigger scoretrigger after insert or update on t pms score for each row begin if updating and new.m score 100 and new.m score 99 the...
如何用JK觸發器構成D觸發器電路圖
莊生曉夢 d觸發器的狀態方程是 q d,jk觸發器的狀態方程是 q jq k q。d觸發器有兩種觸發方式 電平觸發和邊緣觸發。前者可以在cp 時鐘脈衝 等於1時觸發,後者主要在cp的前面觸發 正跳0 1 d觸發器的二次狀態取決於d端觸發前的狀態,即二次狀態 d,因此具有設定0和1的兩個功能。對於邊緣...
施密特觸發器有幾個穩態單穩態觸發器有幾個穩態多諧振盪器有
津人依夢 當輸入電壓高於正向閾值電壓時輸出為低 當輸入電壓低於負向閾值電壓時輸出為高,當輸入在正負向閾值電壓之間時輸出不變,這是標準施密特觸發器的特點。在外加脈衝作用下,一個穩定狀態翻轉到一個暫穩態,由於電路中rc延時環節的作用,該暫態維持一段時間又回到原來的穩態,這是單穩態觸發器的特點。一種能產生...