日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > Oracel 10g 中創建觸發器的臨時表是什么

Oracel 10g 中創建觸發器的臨時表是什么

來源:程序員人生   發布時間:2014-04-02 00:28:09 閱讀次數:3318次

問題:

Oracel 10g 中 創建觸發器時 臨時表是???

CREATE OR REPLACE TRIGGER receivedBook_insert_update
BEFORE INSERT OR UPDATE
ON t_leoa_ReceivedBook
FOR EACH ROW
BEGIN
DECLARE LandNo VARCHAR2(100)
SELECT t_leoa_ReceivedBook.LandInfo_LandNo FROM Dual -- 臨時表

IF LandInfo_LandNo !:= NULL THEN
SELECT LandNo := LandInfo_LandNo FROM t_leoa_BookFlow
WHERE t_leoa_ReceivedBook.LandInfo_LandNo

IF LandNo !:= NULL THEN
UPDATE t_leoa_BookFlow SET LandInfo_LandNo := LandNo+1 WHERE
Flow_ID := (SELECT FLOW_ID FROM t_leoa_BookFlow WHERE LandInfo_LandNo := LandNo)
ELSIF
INSERT INTO t_leoa_BookFlow VALUES(1,FLOW_CURCIRINDEX,FLOW_RECTIME,FLOW_APPLYTIME,
FLOW_REASEARCHTIME,FLOW_FIRSTAUDITTIME,FLOW_BULLETINTIME,FLOW_LASTAUDITTIME,FLOW_REGISTERTIME,
FLOW_SHANZHENGTIME,FLOW_ISSUELANDCERTIFYTIME,FLOW_FTPFOLDERNAME,FLOW_FLAG,LandInfo_LandNo)
END BEFORE ReceivedBook_insert_update;

調試一天還出錯 麻煩高手 幫幫忙 多謝啦!

問題補充:---------收件單觸發器
CREATE OR REPLACE TRIGGER tib_Leoa_ReceivedBook
BEFORE INSERT OR UPDATE ON t_Leoa_ReceivedBook
FOR EACH ROW
DECLARE
land_no VARCHAR2(50); --存儲地籍號
del_flag Integer; --檢測刪除標志
total Integer; --存儲、判斷獲取值
rec_date date; --記錄收件時的日期
add_value integer; --當前操作需要增加或者刪除的值
BEGIN
/*賦予默認值*/
del_flag := 0;
land_no := '';
add_value := 1; --根據對應環節不同該值而不同

/*從臨時表DUAL獲取刪除標志存儲在del_flag 中*/
SELECT :new.Received_Flag INTO del_flag FROM DUAL;
/*從臨時表DUAL獲取的地籍號存儲在land_no中,*/
SELECT :new.Landinfo_Landno INTO land_no FROM DUAL;
/*從臨時表DUAL獲取的收件日期存儲在rec_date中,*/
SELECT :new.Received_ReceivedTime INTO rec_date FROM DUAL;

/*通過LandNo從流程表中檢測流程信息表中是否含有該條記錄的流程信息*/
/*flow_flag=-1表示該條記錄在流程信息表已被邏輯刪除,不再參與實際事務*/
SELECT COUNT(*) INTO total FROM t_leoa_BookFlow t
WHERE t.LandInfo_LandNo = land_no AND t.flow_flag <> -1;

/*如果在流程信息表中有關于該條記錄的流程信息*/
IF total >= 1 THEN
/*開始判斷當前的操作是INSERT還是UPDATE*/
IF inserting THEN
UPDATE t_leoa_BookFlow SET Flow_ProcessValue = Flow_ProcessValue + add_value
WHERE LandInfo_LandNo = land_no AND Flow_flag <> -1;
ELSE
/*如果是UPDATE操作*/
IF(updating and (del_flag = -1)) THEN
UPDATE t_leoa_BookFlow SET Flow_ProcessValue = Flow_ProcessValue - add_value
WHERE LandInfo_LandNo = land_no AND Flow_flag <> -1;
END IF;
END IF;
ELSE
/*如果流程信息表中不存在當前的記錄*/
INSERT INTO t_leoa_BookFlow
values(0,add_value,null,rec_date,null,null,null,null,null,null,null,null,null,del_flag,land_no);
END IF;
END;

回答:

Oracle 中沒有臨時表。

在 Oracle 觸發器中,:new 表示新的行, :old 表示原來舊的行,這兩個變量是系統定義的,可以直接使用。

它們的類型都是記錄型,通過與列同名的屬性來訪問字段的值。

例如,表中有一列為 Name,那么,在刪除或者更新時,訪問原來舊的值使用 :old.name,在插入,或者更新的時候訪問新的值,使用 :new.name 就可以了。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品美女久久久免费 | 亚州成人| 国产剧情在线观看一区二区 | 男人天堂电影 | 蜜桃在线一区二区三区 | 亚洲三级在线播放 | 视频精品一区二区三区 | 日韩一区二区三区精品 | 不卡在线一区二区 | 久久久久久久网站 | 国产成年人免费视频 | 日韩欧美在线观看视频 | 精品国产1区2区 | 精品国产一区二区三区四区四 | 国产精品亚洲一区二区三区在线 | 精品国产第一国产综合精品 | 中文字幕一区2区 | 国外成人在线视频 | 国产精品欧美一区二区 | 中文自拍 | 日韩一区二区三区四区五区六区 | 久久国产精品免费一区二区三区 | av色资源| 欧美成人一区二区三区片免费 | 99九九视频 | 欧美激情综合五月色丁香小说 | 亚洲精品一区二三区不卡 | 欧美日在线 | 国产一区在线免费观看 | 国偷自产视频一区二区久 | 99re国产视频 | 久久99深爱久久99精品 | 粉嫩一区二区 | 激情成人黄色 | 国产主播福利在线 | 国产伦精品一区二区三区视频金莲 | 久一视频在线观看 | 一区二区三区四区不卡 | 在线久草 | 国产日韩精品一区二区三区 | 色av影院|