oracle 臨時表 解決 "表 *** 發生了變化,觸發器/函式不能讀"的問題
oracle 臨時表 解決 "表 *** 發生了變化,觸發器/函式不能讀"的問題.
行級的觸發器程式碼中不能操作該表,包括select,所以報錯!
當然解決方法就是要根據原因了,正因為限定了行級觸發器的操作,只能選擇表級的觸發器了,但是在表級的觸發器又不能獲得:new和:old的值,那就只能採取兩種觸發器並用的方法了,並且還要包或者臨時表加以輔助.
首先在行級觸發器中將所需的,:new或者:old的值,寫到包或者臨時表中
然後在表級觸發器中處理包或者臨時表中已經寫入的資料,操作成功後可以按照需求再刪除臨時表的資料.
下面是一個例項:
-- 建立一個臨時表
create global temporary table TEMP_TEMP
(
NOTICEID NUMBER(10),
VERSION NUMBER(10)
)
on commit preserve rows;
--儲存過程
create or replace trigger savetempvalue
after insert or delete on notice_comment_data
for each row
begin
insert into temp_temp values(:new.noticeId,:new.version);
end savetempvalue;
--主儲存過程
create or replace trigger UpdateReplyCount
after insert or delete on notice_comment_data
declare
t_noticeId notice_comment_data.noticeid%type;
t_version notice_comment_data.version%type;
begin
select noticeId,version into t_noticeId,t_version from temp_temp;
update notice_data
set replyCount=(select count(*) from notice_comment_data
where notice_comment_data.noticeid=t_noticeId and version=t_version )
where notice_data.noticeid=t_noticeId
AND notice_data.version=t_version;
end UpdateReplyCount;
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/onisland/archive/2010/09/06/5865622.aspx
相關文章
- Oracle 表 XXXXX 發生了變化, 觸發器/函式不能讀它.Oracle觸發器函式
- oracle變異表觸發器相關問題解決Oracle觸發器
- DB2_建立在臨時表上的檢視-過程-表函式-觸發器DB2函式觸發器
- 呼叫函式時,暫存器到底發生了那些變化?函式
- 解決Oracle臨時表空間佔滿的問題Oracle
- 用Oracle表函式解決繫結變數集合問題Oracle函式變數
- ORA-04091 觸發器/函式不能讀觸發器函式
- oracle的臨時表空間解決問題的步驟Oracle
- Oracle觸發器死鎖問題解決Oracle觸發器
- 27、oracle的臨時表問題Oracle
- 轉:Oracle 臨時表空間過大問題解決Oracle
- oracle 觸發器-表同步Oracle觸發器
- oralce觸發器解決問題觸發器
- 【實驗】重建臨時表空間解決臨時表空間過大問題
- oracle 建立表,序列,索引,檢視,觸發器,函式,儲存過程,定時器,包體Oracle索引觸發器函式儲存過程定時器
- mysql臨時表的問題MySql
- 臨時表空間ORA-1652問題解決
- Oracle資料庫開發——臨時表Oracle資料庫
- 禁止oracle表的觸發器triggerOracle觸發器
- goldengate 觸發器導致oracle 表空間不能onlineGo觸發器Oracle
- PostgreSQL LIST分割槽實現:繼承表+函式+觸發器。SQL繼承函式觸發器
- Oracle的臨時表Oracle
- oracle觸發器~ 更新多表的問題Oracle觸發器
- Oracle rman 備份與恢復 臨時表空間的檔案問題解決Oracle
- oracle 9i 臨時表空間問題Oracle
- Oracle 解決鎖表問題Oracle
- oracle臨時表Oracle
- Oracle 臨時表Oracle
- 解決Oracle 11g空表不能exp匯出的問題Oracle
- ORACLE臨時表和SQLSERVER臨時表異同OracleSQLServer
- Oracle事務臨時表的一個隱藏問題Oracle
- 【實驗】RESIZE方法解決臨時表空間過大問題
- ORACLE 臨時表空間滿了的原因解決方案Oracle
- oracle 臨時表的使用Oracle
- oracle臨時表的用法Oracle
- Oracle資料庫DDL審計觸發器觸發的bug問題Oracle資料庫觸發器
- 利用觸發器解決更新主鍵衝突的問題觸發器
- 再議臨時表和表變數變數