討論區快速選單
知識庫快速選單
三個月從數學老師轉行程式設計師 網路投保旅行平安險
[ 回上頁 ] [ 討論區發言規則 ]
請教一個trigger + cursor問題
更改我的閱讀文章字型大小
作者 : kentshe(真是有點難)
[ 貼文 5 | 人氣 453 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/3/18 下午 01:22:05
請教一下各位大大 我有兩個table
/*
create table COPLIST
(單別 VARCHAR2(10),
單號 VARCHAR2(11),
序號 VARCHAR2(4),
品號 VARCHAR2(10),
數量 NUMBER(18,0),
客戶 VARCHAR2(10))


create table logbb
(cc varchar(100));
*/

我在上面寫了一個trigger 編譯沒有錯誤訊息 但執行後卻不行
/*
CREATE OR REPLACE TRIGGER coptrig AFTER UPDATE ON coplist
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
CURSOR cr IS
SELECT "序號","品號","數量","客戶" FROM coplist where "單別"= :new."單別" and "單號"= :new."單號";

BEGIN

FOR crx IN cr LOOP

INSERT INTO logbb(cc)VALUES(crx."序號");

END LOOP;
END;
*/

INSERT INTO COPLIST(單別,單號,序號) VALUES('C103','0318','0001');
INSERT INTO COPLIST(單別,單號,序號) VALUES('C103','0318','0002');
INSERT INTO COPLIST(單別,單號,序號) VALUES('C103','0318','0003');

update coplist set "數量"='100' where "單號"='0318'
會出現
SQL 錯誤: ORA-04091: 表格 SYSTEM.COPLIST 正在變更中, 觸發程式/函數無法檢視它
ORA-06512: 在 "SYSTEM.COPTRIG", line 3
ORA-06512: 在 "SYSTEM.COPTRIG", line 7
ORA-04088: 執行觸發程式 'SYSTEM.COPTRIG' 時發生錯誤
04091. 00000 - "table %s.%s is mutating, trigger/function may not see it"
*Cause: A trigger (or a user defined plsql function that is referenced in
this statement) attempted to look at (or modify) a table that was
in the middle of being modified by the statement which fired it.
*Action: Rewrite the trigger (or function) so it does not read that table.


補充一下

DECLARE
CURSOR cr IS
SELECT "序號","品號","數量","客戶" FROM COPLIST where "單別"='C103' AND "單號"='0318';
BEGIN
FOR crx IN cr LOOP
INSERT INTO logbb(cc) VALUES(crx."序號");
END LOOP;
END;
這樣的執行是沒問題的
 板主 : 徵求中
 > Oracle - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - Oracle - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
Oracle
1 Ricky 3260 
2 HKLN.net 1650 
3 falcon 300 
4 Leon Chou 230 
5 180 
6 sunnychen 100 
7 凡人 90 
8 SAP 80 
9 萬惡我為首 80 
10 阿德 80 
Oracle
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2017 程式設計俱樂部 http://www.programmer-club.com.tw/
0.03125