激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

Oracle觸發(fā)器在MIS 開(kāi)發(fā)中的應用

時(shí)間:2024-10-19 19:38:15 計算機畢業(yè)論文 我要投稿
  • 相關(guān)推薦

Oracle觸發(fā)器在MIS 開(kāi)發(fā)中的應用

Oracle觸發(fā)器在MIS 開(kāi)發(fā)中的應用

周海濤 吳良剛

摘要:本文介紹了oracle觸發(fā)器的概念和類(lèi)型,總結了oracle觸發(fā)器在開(kāi)發(fā)MIS中的應用,并提供了實(shí)例以供參考.

關(guān)鍵詞:MIS 、觸發(fā)器 oracle

1.引言

本人在做一個(gè)大型的MIS系統(前臺用powerbuild工具,后臺用oracle數據庫)時(shí),常碰到一些有關(guān)數據冗長(cháng)性,批量刪除和動(dòng)態(tài)信息方面的問(wèn)題,由此發(fā)現數據庫觸發(fā)器簡(jiǎn)單易用,F將有關(guān)開(kāi)發(fā)和應用中的一些體會(huì )總結成文,供同行參考。

2.觸發(fā)器的概念和類(lèi)型。

數據庫觸發(fā)器(database triggers)是響應插入、更新或刪除等數據庫事件而執行的過(guò)程。它定義了當一些數據庫相關(guān)事件發(fā)生時(shí)應采取的動(dòng)作?捎糜诠芾韽碗s的完整性約束,或監控對表的修改,或通知其它程序,表已發(fā)生修改。它的類(lèi)型有:語(yǔ)句級觸發(fā)器,以及行級觸發(fā)器,前者可以在語(yǔ)句執行前或執行后被觸發(fā)。后者在每個(gè)觸發(fā)語(yǔ)句影響的行觸發(fā)一次。還有before和after觸發(fā)的命令。在insert,update,和delete之前或之后執行,引用新舊值進(jìn)行處理。如果需通過(guò)觸發(fā)器設定插入行中的某列值,則為了訪(fǎng)問(wèn)“新(new)”值,需使用一個(gè)觸發(fā)器before insert,使用after insert則不行。Instead of 觸發(fā)器命令,使用它告訴oracle應執行什么操作。以上四種大類(lèi)合成14種小類(lèi)(略)。各種觸發(fā)器的執行順序如下:

⑴ 如果有,最先執行語(yǔ)句級before觸發(fā)器。

⑵ 每個(gè)insert,delete,update影響的行;

① 如果有,最先執行行級before

② 執行行的delete或update

③ 如果有,執行行級after觸發(fā)器

⑶ 如果有,執行語(yǔ)句級after觸發(fā)器

3.使用數據庫觸發(fā)器管理數據冗余性

為了數據分析和制作報表的需要,用戶(hù)在數據模型中加入了冗余數據,應使用觸發(fā)器,以保證數據的完整性。

冗余數據可以用規定的 for each row選項的before update觸發(fā)器進(jìn)行管理。update 命令可放在觸發(fā)器中對所有需要更新的冗余數據進(jìn)行更新,如客戶(hù)表和訂單表,訂單表包括客戶(hù)的訂單和客戶(hù)表的冗余信息,客戶(hù)表(customer)的表結構:客戶(hù)號(cu_no)、客戶(hù)名(cu_name)、客戶(hù)地址(cu_address)。訂單表(order)的表結構:訂單號(or_no),客戶(hù)號(or_no),客戶(hù)名(cu_name),客戶(hù)地址(cu_address),當客戶(hù)基表中的數據被更新時(shí)更新訂單中的冗余列。語(yǔ)法如下:

create or replace trigger bj_customer

before update on customer

for each row

begin

update order set

cu_no=:new.cu_no,

cu_name=:new.cu_name,

cu_address=:new.cu_addess,

where cu_no=:old.cu_no;

end;

4.用觸發(fā)器完成數據復制

如果需求非常有限,可以用數據觸發(fā)器從一個(gè)數據庫中向另一個(gè)數據庫復制數據,如果數據復制需求僅與數據的插入有關(guān),當一條記錄插入到一個(gè)數據庫中的某個(gè)基表中時(shí),用戶(hù)還希望把這條記錄插入到一個(gè)遠程數據庫中,需用create database link語(yǔ)句創(chuàng )建一條到遠程數據庫的連接,一旦創(chuàng )建了一條數據庫連接后,就可以在基表上創(chuàng )建一個(gè)after insert觸發(fā)器,以把每一條記錄插入到遠程數據庫中。

(1)在腳本中創(chuàng )建數據庫連接(database link)bj_ysd_remote基表作為數據庫基表,Bj_ysd_local代表本地數據庫上的源基表。

Creat database link remote(連接名)

Connect to bj(帳戶(hù)) indentified by bj(密碼)

Using ‘:2’;

(2)復制記錄

create or replace trigger trig_ysd(觸發(fā)器名)

after insert on bj_ysd_local

for each row

begin

insert into bj_ysd_remote@dblink remote

value(:new.x1,:new.x2,……)/*x1.x2代表字段名*/

end;

(3)刪除記錄

create or replace trigger trig_ys

【Oracle觸發(fā)器在MIS 開(kāi)發(fā)中的應用】相關(guān)文章:

MIS開(kāi)發(fā)中軟件工程方法的運用03-18

ORACLE RAC集群在電力營(yíng)銷(xiāo)系統中的應用03-18

對MIS 開(kāi)發(fā)模式的策略研究03-18

項目管理在A(yíng)SP軟件開(kāi)發(fā)中的應用03-23

Oracle Portal及其門(mén)戶(hù)網(wǎng)站開(kāi)發(fā)概述03-18

談?dòng)嬎銠C在油氣田開(kāi)發(fā)中的應用03-18

探析計算機在油氣田開(kāi)發(fā)中的應用03-18

基于Oracle數據庫的邏輯數據同步技術(shù)在實(shí)踐中的應用研究03-10

CODARTS建模方法在嵌入式軟件開(kāi)發(fā)中的應用03-18

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频