瑙﹀彂鍣ㄧ殑姒傚康鍜岀被鍨?br>銆銆鏁版嵁搴撹Е鍙戝櫒錛坉atabase triggers錛夋槸鍝嶅簲鎻掑叆銆佹洿鏂版垨鍒犻櫎絳夋暟鎹簱浜嬩歡鑰屾墽琛岀殑榪囩▼銆傚畠瀹氫箟浜嗗綋涓浜涙暟鎹簱鐩稿叧浜嬩歡鍙戠敓鏃跺簲閲囧彇鐨勫姩浣溿傚彲鐢ㄤ簬綆$悊澶嶆潅鐨勫畬鏁存х害鏉燂紝鎴栫洃鎺у琛ㄧ殑淇敼錛屾垨閫氱煡鍏跺畠紼嬪簭錛岃〃宸插彂鐢熶慨鏀廣傚畠鐨勭被鍨嬫湁錛氳鍙ョ駭瑙﹀彂鍣紝浠ュ強(qiáng)琛岀駭瑙﹀彂鍣紝鍓嶈呭彲浠ュ湪璇彞鎵ц鍓嶆垨鎵ц鍚庤瑙﹀彂銆傚悗鑰呭湪姣忎釜瑙﹀彂璇彞褰卞搷鐨勮瑙﹀彂涓嬈°傝繕鏈塨efore鍜宎fter瑙﹀彂鐨勫懡浠ゃ傚湪insert,update,鍜宒elete涔嬪墠鎴栦箣鍚庢墽琛岋紝寮曠敤鏂版棫鍊艱繘琛屽鐞嗐傚鏋滈渶閫氳繃瑙﹀彂鍣ㄨ瀹氭彃鍏ヨ涓殑鏌愬垪鍊鹼紝鍒欎負(fù)浜嗚闂?#8220;鏂?new)”鍊鹼紝闇浣跨敤涓涓Е鍙戝櫒before insert錛屼嬌鐢╝fter insert鍒欎笉琛屻侷nstead of 瑙﹀彂鍣ㄥ懡浠わ紝浣跨敤瀹冨憡璇塷racle搴旀墽琛屼粈涔堟搷浣溿備互涓婂洓縐嶅ぇ綾誨悎鎴?4縐嶅皬綾伙紙鐣ワ級銆傚悇縐嶈Е鍙戝櫒鐨勬墽琛岄『搴忓涓嬶細(xì)
銆銆鈶淬銆銆濡傛灉鏈夛紝鏈鍏堟墽琛岃鍙ョ駭before瑙﹀彂鍣ㄣ?
銆銆鈶點銆銆姣忎釜insert錛宒elete,update褰卞搷鐨勮錛?
銆銆鈶犮銆濡傛灉鏈夛紝鏈鍏堟墽琛岃綰efore
銆銆鈶°銆鎵ц琛岀殑delete鎴杣pdate
銆銆鈶€銆濡傛灉鏈?鎵ц琛岀駭after瑙﹀彂鍣?
銆銆鈶躲銆銆濡傛灉鏈?鎵ц璇彞綰fter瑙﹀彂鍣?
銆銆
銆銆1銆佷嬌鐢ㄦ暟鎹簱瑙﹀彂鍣ㄧ鐞嗘暟鎹啑浣欐?
銆銆涓轟簡鏁版嵁鍒嗘瀽鍜屽埗浣滄姤琛ㄧ殑闇瑕?鐢ㄦ埛鍦ㄦ暟鎹ā鍨嬩腑鍔犲叆浜嗗啑浣欐暟鎹紝搴斾嬌鐢ㄨЕ鍙戝櫒,浠ヤ繚璇佹暟鎹殑瀹屾暣鎬с?
銆銆鍐椾綑鏁版嵁鍙互鐢ㄨ瀹氱殑 for each row閫夐」鐨刡efore update瑙﹀彂鍣ㄨ繘琛岀鐞嗐倁pdate 鍛戒護(hù)鍙斁鍦ㄨЕ鍙戝櫒涓鎵鏈夐渶瑕佹洿鏂扮殑鍐椾綑鏁版嵁榪涜鏇存柊,濡傚鎴瘋〃鍜岃鍗曡〃,璁㈠崟琛ㄥ寘鎷鎴風(fēng)殑璁㈠崟鍜屽鎴瘋〃鐨勫啑浣欎俊鎭?瀹㈡埛琛?customer)鐨勮〃緇撴瀯:瀹㈡埛鍙?cu_no)銆佸鎴峰悕(cu_name)銆佸鎴峰湴鍧(cu_address)銆傝鍗曡〃(order)鐨勮〃緇撴瀯:璁㈠崟鍙?or_no),瀹㈡埛鍙?or_no)錛屽鎴峰悕錛坈u_name錛夛紝瀹㈡埛鍦板潃錛坈u_address錛?褰撳鎴峰熀琛ㄤ腑鐨勬暟鎹鏇存柊鏃舵洿鏂拌鍗曚腑鐨勫啑浣欏垪銆傝娉曞涓嬶細(xì)
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;
銆銆
銆銆2銆佺敤瑙﹀彂鍣ㄥ畬鎴愭暟鎹鍒?
銆銆濡傛灉闇姹傞潪甯告湁闄愶紝鍙互鐢ㄦ暟鎹Е鍙戝櫒浠庝竴涓暟鎹簱涓悜鍙︿竴涓暟鎹簱澶嶅埗鏁版嵁錛屽鏋滄暟鎹鍒墮渶姹備粎涓庢暟鎹殑鎻掑叆鏈夊叧錛屽綋涓鏉¤褰曟彃鍏ュ埌涓涓暟鎹簱涓殑鏌愪釜鍩鴻〃涓椂錛岀敤鎴瘋繕甯屾湜鎶婅繖鏉¤褰曟彃鍏ュ埌涓涓繙紼嬫暟鎹簱涓紝闇鐢╟reate database link璇彞鍒涘緩涓鏉″埌榪滅▼鏁版嵁搴撶殑榪炴帴錛屼竴鏃﹀垱寤轟簡涓鏉℃暟鎹簱榪炴帴鍚庯紝灝卞彲浠ュ湪鍩鴻〃涓婂垱寤轟竴涓猘fter insert瑙﹀彂鍣紝浠ユ妸姣忎竴鏉¤褰曟彃鍏ュ埌榪滅▼鏁版嵁搴撲腑銆?
銆銆
銆銆錛?錛夊湪鑴氭湰涓垱寤烘暟鎹簱榪炴帴錛坉atabase link錛塨j_ysd_remote鍩鴻〃浣滀負(fù)鏁版嵁搴撳熀琛紝Bj_ysd_local浠h〃鏈湴鏁版嵁搴撲笂鐨勬簮鍩鴻〃銆?
銆銆
Creat database link remote(榪炴帴鍚?
Connect to bj(甯愭埛) indentified by bj(瀵嗙爜)
Using ':2';
銆銆
銆銆錛?錛夊鍒惰褰?
銆銆
create or replace trigger trig_ysd
after insert on bj_ysd_local
for each row
begin
insert into bj_ysd_remote@dblink remote
value(:new.x1,:new.x2,……)/錛妜1.x2浠h〃瀛楁鍚嶏紛錛?
end;
銆銆
銆銆錛?錛夊垹闄よ褰?
銆銆
create or replace trigger trig_ysd_del
after delete on bj_ysd_local
for each row
begin
delete from bj_ysd_remote@dblink remote
where x1=:old.x1
end;
銆銆
銆銆3銆佺敤鏁版嵁搴撹Е鍙戝櫒瀹屾垚鐎戝竷寮忓垹闄ゆ搷浣?
銆銆鍦ㄦ煇浜涙儏鍐典笅錛屽綋瑕佸垹闄や竴鏉¤褰曟椂錛岃璁板綍鏄笌澶栭敭鏈夊叧鐨勫彟澶栦竴寮犲熀琛ㄤ笂鐨勮褰曟椂錛岃繖涓垹闄ゆ搷浣滃繀欏誨湪妯″瀷涓繘琛屼紶閫掞紝鍚﹀垯浼?xì)鍑虹幇澶ч噺鐨勫啑闀挎暟鎹Q屼粛浠umstomer 鍜宱rder鍩鴻〃涓轟緥錛屽綋浠巆ustomer涓垹闄や竴涓鎴鋒椂錛宱rder鍩鴻〃涓墍鏈夌浉鍏寵褰曚篃搴斿綋鍒犻櫎銆?
Create or replace trigger trig_cust
Before delete on銆customer
For each row
Begin
Delete from order
Where cu_no=old.cu_no;
End;
銆銆
銆銆4銆佺敤瑙﹀彂鍣ㄥ畬鎴愬姩鎬佹暟鎹殑鎿嶄綔
銆銆鍦ㄦ秹鍙?qiáng)濡備綍瀹炵幇鍔ㄦ佸簱瀛樼殑闂鏃訛紝鍙敤瑙﹀彂鍣ㄨВ鍐熾備粨搴撴湁楠屾敹銆佸嚭搴撱佽皟鎷ㄣ佹姤搴熴侀鏂欍佽鍞瓑榪欎簺鏁版嵁蹇呴』涓庝互鍓嶇殑搴撳瓨鐩稿姞鍑忥紝鎵嶈兘瀹屾垚鍔ㄦ佸簱瀛樻搷浣溿傛湰鏂囦粎浠ラ獙鏀跺崟瑙﹀彂鍣ㄤ負(fù)渚嬶紝鍏跺畠鐨勭粨鏋勯浄鍚屻傚畠浠秹鍙?qiáng)鍒颁袱涓燌櫋ㄥQ歜i_ysd(楠屾敹鍗?錛孊j_kcb(褰撳墠搴撳瓨琛?錛屽墠鑰呯殑琛ㄧ粨鏋勶紙rq(鏃ユ湡)錛寉sdh(楠屾敹鍗曞彿)錛?bjbm(澶囦歡緙栫爜)錛寉ssl(楠屾敹鏁伴噺)錛寉sdj(楠屾敹鍗曚環(huán))錛夛紝鍚庤呯殑琛ㄧ粨鏋勪負(fù)錛坆jbm錛堝浠剁紪鐮侊級,dqkcl錛堝綋鍓嶅簱瀛橀噺錛?dqkcje錛堝綋鍓嶅簱瀛橀噾棰濓級錛夎Е鍙戝櫒濡備笅錛?
銆銆
create or replace trigger trig_ysd
after insert or update or delete on bj_ysd
for each row
declare rq1 varchar2(8);rq2 varchar2(8);
/*闄愪簬綃囧箙錛寉ssl1,yssl2,ysdj1,ysdj2,bjbm1,bjbm2,ii澹版槑鐣?/
if inserting or updating then
rq1:=:new.rq;bjbm1:=:new.bjbm;yssl1:=:new.yssl;
ysdj1:=:new.ysdj;
銆銆
select count(*) into ii from bj_dqkcb
where bjbm=bjbm1;
銆銆
if銆ii=0銆then
insert銆into銆bj_dqkcb(bjbm,dqkcl,dqkcje)
value(bjbm1,yssl1,ysdj1);
else
update bj_dqkcb
set dqkcl=dqkcl+yssl1;
銆銆 dqkcje=dqkcje+yssl1*ysdj1;
end if
end if
銆銆
if deleting or updating then
rq2:=:old.rq;
bjbm2:=:old.bjbm;
yssl2:=:old.yssl;
ysdj2:=:old.ysdj;
update bj_dqkcb
set dqkcb=dqkcl-yssl2;
dqkcje=dqkcje-yssl2*ysdj2
end if;
end ;
銆銆
銆銆5銆佺粨鏉熻
銆銆鏁版嵁搴撹Е鍙戝櫒鍦ㄦ暟鎹簱寮鍙戞湁寰堝箍娉涚殑搴旂敤錛屼絾緇忛獙琛ㄦ槑錛屼嬌鐢ㄨ繃澶氱殑瑙﹀彂鍣ㄥ皢闄嶄綆鏁翠釜鏁版嵁搴撶殑鎬ц兘銆傚鏋滄暟鎹簱瑙﹀彂鍣ㄥ啓寰椾笉濂斤紝瀹冧細(xì)寰堝揩鐮村潖鏁版嵁搴撶殑鎬ц兘錛屽洜姝わ紝鍦ㄩ傚綋鐨勬椂鍊欎嬌鐢ㄦ伆褰撶殑瑙﹀彂鍣ㄦ樉寰楅潪甯擱噸瑕併?
聽4 灝嗘暟鎹簱涓殑琛╰able1涓殑瀛楁filed1浠?00"鎵撳ご鐨勬暟鎹鍑?br />聽聽 exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"
聽
聽 涓婇潰鏄父鐢ㄧ殑瀵煎嚭錛屽浜庡帇緙╋紝鏃㈢敤winzip鎶奷mp鏂囦歡鍙互寰堝ソ鐨勫帇緙┿?br />聽 涔熷彲浠ュ湪涓婇潰鍛戒護(hù)鍚庨潰 鍔犱笂 compress=y 鏉ュ疄鐜般?/p>
鏁版嵁鐨勫鍏?br />聽1 灝咲:\daochu.dmp 涓殑鏁版嵁瀵煎叆 TEST鏁版嵁搴撲腑銆?br />聽聽 imp system/manager@TEST聽 file=d:\daochu.dmp
聽聽 imp aichannel/aichannel@HUST full=y聽 file=file= d:\data\newsmgnt.dmp ignore=y
聽聽 涓婇潰鍙兘鏈夌偣闂錛屽洜涓烘湁鐨勮〃宸茬粡瀛樺湪錛岀劧鍚庡畠?yōu)鎶ラ敊锛屽璇ヨ〃灏变笉杩涜瀵煎叆銆?br />聽聽 鍦ㄥ悗闈㈠姞涓?ignore=y 灝卞彲浠ヤ簡銆?br />聽2 灝哾:\daochu.dmp涓殑琛╰able1 瀵煎叆
聽imp system/manager@TEST聽 file=d:\daochu.dmp聽 tables=(table1)
聽
聽鍩烘湰涓婁笂闈㈢殑瀵煎叆瀵煎嚭澶熺敤浜嗐備笉灝戞儏鍐佃鍏堟槸灝嗚〃褰誨簳鍒犻櫎錛岀劧鍚庡鍏ャ?br />聽
娉ㄦ剰錛?br />聽鎿嶄綔鑰呰鏈夎凍澶熺殑鏉冮檺錛屾潈闄愪笉澶熷畠浼?xì)鎻惤C恒?br />聽鏁版嵁搴撴椂鍙互榪炰笂鐨勩傚彲浠ョ敤tnsping TEST 鏉ヨ幏寰楁暟鎹簱TEST鑳藉惁榪炰笂銆?/p>
闄勫綍涓錛?br />聽緇欑敤鎴峰鍔犲鍏ユ暟鎹潈闄愮殑鎿嶄綔
聽絎竴,鍚姩sql*puls
聽絎簩錛屼互system/manager鐧婚檰
聽絎笁錛宑reate user 鐢ㄦ埛鍚?IDENTIFIED BY 瀵嗙爜 錛堝鏋滃凡緇忓垱寤鴻繃鐢ㄦ埛錛岃繖姝ュ彲浠ョ渷鐣ワ級
聽絎洓錛孏RANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
聽聽 DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
聽聽聽聽聽 DBA,CONNECT,RESOURCE,CREATE SESSION聽 TO 鐢ㄦ埛鍚嶅瓧
聽絎簲, 榪愯-cmd-榪涘叆dmp鏂囦歡鎵鍦ㄧ殑鐩綍,
聽聽聽聽聽 imp userid=system/manager full=y file=*.dmp
聽聽聽聽聽 鎴栬?imp userid=system/manager full=y file=filename.dmp
聽鎵ц紺轟緥:
聽F:\Work\Oracle_Data\backup>imp userid=test/test full=y file=inner_notify.dmp
灞忓箷鏄劇ず
Import: Release 8.1.7.0.0 - Production on 鏄熸湡鍥?2鏈?16 16:50:05 2006
(c) Copyright 2000 Oracle Corporation.聽 All rights reserved.
榪炴帴鍒? Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
緇忕敱甯歌璺緞瀵煎嚭鐢盓XPORT:V08.01.07鍒涘緩鐨勬枃浠?br />宸茬粡瀹屾垚ZHS16GBK瀛楃闆嗗拰ZHS16GBK NCHAR 瀛楃闆嗕腑鐨勫鍏?br />瀵煎嚭鏈嶅姟鍣ㄤ嬌鐢║TF8 NCHAR 瀛楃闆?(鍙兘鐨刵charset杞崲)
. 姝e湪灝咥ICHANNEL鐨勫璞″鍏ュ埌 AICHANNEL
. . 姝e湪瀵煎叆琛犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅?"INNER_NOTIFY"聽聽聽聽聽聽聽聽聽 4琛岃瀵煎叆
鍑嗗鍚敤綰︽潫鏉′歡...
鎴愬姛緇堟瀵煎叆錛屼絾鍑虹幇璀﹀憡銆?/p>
闄勫綍浜岋細(xì)
聽Oracle 涓嶅厑璁哥洿鎺ユ敼鍙樿〃鐨勬嫢鏈夎? 鍒╃敤Export/Import鍙互杈懼埌榪欎竴鐩殑.
聽 鍏堝緩绔媔mport9.par,
聽 鐒跺悗錛屼嬌鐢ㄦ椂鍛戒護(hù)濡備笅錛歩mp parfile=/filepath/import9.par
聽 渚?import9.par 鍐呭濡備笅錛?br />聽聽聽聽聽聽聽 FROMUSER=TGPMS聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 TOUSER=TGPMS2聽聽聽聽 錛堟敞錛氭妸琛ㄧ殑鎷ユ湁鑰呯敱FROMUSER鏀逛負(fù)TOUSER錛孎ROMUSER鍜孴OUSER鐨勭敤鎴峰彲浠ヤ笉鍚岋級聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 ROWS=Y
聽聽聽聽聽聽聽 INDEXES=Y
聽聽聽聽聽聽聽 GRANTS=Y
聽聽聽聽聽聽聽 CONSTRAINTS=Y
聽聽聽聽聽聽聽 BUFFER=409600
聽聽聽聽聽聽聽 file==/backup/ctgpc_20030623.dmp
聽聽聽聽聽聽聽 log==/backup/import_20030623.log