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表的觸發器triggerOracle觸發器
- 臨時表空間ORA-1652問題解決
- oracle 臨時表的使用Oracle
- PostgreSQL LIST分割槽實現:繼承表+函式+觸發器。SQL繼承函式觸發器
- ORACLE臨時表總結Oracle
- 臨時讀原始碼的函式原始碼函式
- Oracle 臨時表 OracleDataAdapter 批次更新OracleAPT
- Oracle日常問題-臨時表過多導致exp速度慢Oracle
- radio值變化時觸發的jqueryjQuery
- Oracle臨時表的用法總結FLOracle
- 阿里雲伺服器不能發郵件問題解決方案阿里伺服器
- oracle臨時表空間相關Oracle
- Oracle臨時表使用注意事項Oracle
- postgresql 按小時分表(含觸發器)的實現方式SQL觸發器
- TSP問題(換位表達,啟發式交叉,啟發式變異)C++實現C++
- Sqlserver 關於臨時表和表變數的總結SQLServer變數
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- oracle 觸發器,當一個表更新或插入時將資料同步至另個庫中的某個表中Oracle觸發器
- 如何使用 DAX 函式解決動態圖表標題函式
- MySQL 高階 | 用儲存過程、定時器、觸發器來解決資料分析問題MySql儲存過程定時器觸發器
- oracle 臨時表空間的增刪改查Oracle
- 七、函式-儲存過程-觸發器函式儲存過程觸發器
- 解決 HttpServletRequest 的輸入流不能重複讀的問題HTTPServlet
- window.onload 觸發時機問題
- 瞭解使用mysql 的檢視、儲存過程、觸發器、函式....MySql儲存過程觸發器函式
- Oracle開發基礎-觸發器Oracle觸發器
- OGG同步複製時與相容觸發器解決方法觸發器
- PostgreSQL:臨時表SQL
- MySQL臨時表MySql
- 遮蔽在建構函式中初始化qtablewidget時觸發單元改變的槽函式(介面還沒有顯示出來)函式QT
- 用分散式鎖解決併發問題分散式
- SQLServer臨時表的使用SQLServer
- MySQL 中的臨時表MySql
- 觸發器實現表資料自動更新觸發器
- 臨時表空間使用率過高的解決辦法
- Oracle 自動備份觸發ORA-01513問題Oracle
- 檢視oracle臨時表空間佔用率的檢視Oracle
- 遺傳演算法解決函式最佳化問題演算法函式
- 迴圈內臨時變數問題變數