亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

Oracle觸發器

2024-08-29 13:54:02
字體:
來源:轉載
供稿:網友
--創建觸發器(行級觸發器)   
create or replace trigger tri_update_emp_bak   
after update   
on emp_bak   
for each row  --每更新一行 就觸發一次    
begin  
     --Oracle 里面 對觸發器 也提供了特殊的對象 :NEW :OLD 來訪問 更新前后的數據   
        
  
     dbms_output.put_line('更新后' || :NEW.sal);   
      dbms_output.put_line('更新前' || :OLD.sal);   
         
      if updating then  
            
      end if;   
         
      if inserting    
  
end;   
  
  
--創建觸發器(行級觸發器)(前置)   
create or replace trigger tri3_update_emp_bak   
before update   
on emp_bak   
for each row  --每更新一行 就觸發一次    
begin  
     --oracle 里面 對觸發器 也提供了特殊的對象 :NEW :OLD 來訪問 更新前后的數據   
        
  
      dbms_output.put_line('更新后' || :NEW.sal);   
      dbms_output.put_line('更新前' || :OLD.sal);   
  
end;   
  
  
  
  
  
select * from emp_bak   
  
  
  
update emp_bak set sal = 1000 where empno in (7788)   
  
  
  
--創建觸發器(表級觸發器)    
--//表級別觸發器里面 不允許使用 :NEW :OLD 變量   
create or replace trigger tri2_update_emp_bak   
after update   
on emp_bak   
begin  
  
             
      -- dbms_output.put_line('更新后' || :NEW.sal);   
      --dbms_output.put_line('更新前' || :OLD.sal);   
  
end;   
  
  
  
  
--創建觸發器(行級觸發器)   
create or replace trigger tri4_update_emp_bak   
after update of sal   
on emp_bak   
for each row  --每更新一行 就觸發一次    
begin  
     --oracle 里面 對觸發器 也提供了特殊的對象 :NEW :OLD 來訪問 更新前后的數據   
        
  
      dbms_output.put_line('更新后' || :NEW.sal);   
      dbms_output.put_line('更新前' || :OLD.sal);   
  
end;   
  
  
  
create table userinfo   
(   
       userid number(4) PRimary key,   
       username varchar2(20)   
)   
  
create table addrinfo   
(   
       addrid number(4) primary key,   
       addname varchar2(20),   
       userid number(4) references userinfo(userid)   
)   
  
insert into userinfo values (1,'李四')   
insert into addrinfo values (1,'湖北武漢',1)   
  
select * from addrinfo   
  
  
  
delete from userinfo where userid =1  
  
--級聯刪除   
create or replace trigger tri_userinfo_delete   
before  delete    
on userinfo   
for each row   
begin  
    delete from   addrinfo  where userid = :OLD.userid;   
   -- insert into    
end;   
  
  
  
  
  
create table dept_bak as select * from dept   
  
  
  
create or replace view  myview    
as  
  select a.empno,a.ename,a.sal,b.dname   
   from emp a inner join dept b   
   on a.deptno = b.deptno   
       
  
  
  
select * from myview   
  
update  myview set sal = 1000,dname='aaaaa' where empno = 7499  
  
  
--替代觸發器  用在視圖上面 只能是行級的   
--替代觸發器 特點是 真正的操作已經 變成了一個動作而已 功能由觸發器來完成   
create or replace trigger tri_myview   
instead of update    
on myview    
begin  
  
   dbms_output.put_line('刪除操作執行了。。。');   
   update emp set sal = :NEW.sal where empno = :OLD.empno;   
      
   update dept set dname = :NEW.dname where dname = :OLD.dname;   
   --delete from emp where empno = :OLD.empno;   
  
end;   
  
  
  
select * from emp;   
select * from dept;   
  
  
update emp_bak set ename ='aaaa',sal = 10000 where empno in (7788)   
  
  
--系統包   
-- 產生隨機數   
**** **** **** ****   
--dbms_random.value 0-1 之間的隨機小數   
--dbms_random.random  隨機整數   
select dbms_random.value from dual;   
  
  
  
create or replace procedure proc_cardno(mycardno out varchar2)   
as  
   tempcard varchar2(50);   
   cardno varchar2(19);   
begin  
   tempcard:= dbms_random.value;   
       
   cardno:=substr(tempcard,2,4)||' '||substr(tempcard,6,4)||' '||substr(tempcard,10,4)||' '||substr(tempcard,14,4);   
        
   mycardno:=cardno;   
      
--   dbms_output.put_line(tempcard);   
  -- dbms_output.put_line(cardno);   
end;   
  
  
  
  
  
  
--使用UTL_FILE包讀寫文件   
create directory MY_DIR as 'd:/temp';   
create directory MY_DIR2 as 'd:/temp2';   
  
declare   
  --定義文件對象    
   myfile utl_file.file_type;   
  --定義變量 用來存儲每讀出一行的數據   
   linestr varchar2(200);   
begin  
   --打開文件       
     myfile:= utl_file.fopen('MY_DIR','oracle.log','r');   
      
   --進行讀取(循環)   
   loop   
           utl_file.get_line(myfile,linestr);   
           dbms_output.put_line(linestr);   
   end loop;   
         
     exception   
       when others  then    
           utl_file.fclose(myfile);   
          dbms_output.put_line('讀取完畢!');   
              
end;   
  
  
  
  
  
  
declare   
  --定義文件對象    
   myfile utl_file.file_type;   
  --定義變量 用來存儲每讀出一行的數據   
   linestr varchar2(200);   
begin  
   --打開文件       
     myfile:= utl_file.fopen('MY_DIR','oracle.log','a');   
      
   --追加數據   
     
           --utl_file.get_line(myfile,linestr);   
           utl_file.put_line(myfile,'你好,這是新的數據',true);   
         
            utl_file.fclose(myfile);   
      exception   
       when others  then    
           utl_file.fclose(myfile);   
          dbms_output.put_line('讀取完畢!');   
              
end;   
  
  
--拷貝   
  
  
  
declare   
  --定義文件對象    
   sourcefile utl_file.file_type;   
   targetfile utl_file.file_type;   
  --定義變量 用來存儲每讀出一行的數據   
   linestr varchar2(200);   
begin  
   --打開文件       
     sourcefile:= utl_file.fopen('MY_DIR','oracle.log','r');   
     targetfile:= utl_file.fopen('MY_DIR2','copy.txt','a');   
        
   --進行讀取(循環) 并且寫入到新的文件里面   
   loop   
            utl_file.get_line(sourcefile,linestr);   
            utl_file.put_line(targetfile,linestr,true);   
          -- dbms_output.put_line(linestr);   
   end loop;   
         
     exception   
       when others  then    
           utl_file.fclose(sourcefile);   
            utl_file.fclose(targetfile);   
          dbms_output.put_line('拷貝完畢!');   
              
end;  


本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/hzz1988/archive/2009/12/30/5107869.aspx
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩亚洲一区二区| 亚洲精品视频久久| 亚洲一区二区自拍| 中文字幕一区二区三区电影| 久久精品国产亚洲一区二区| 欧美日韩亚洲视频一区| 欧美精品做受xxx性少妇| 91香蕉嫩草影院入口| 38少妇精品导航| 久久久精品网站| 久久中文字幕一区| 中文字幕在线国产精品| 视频一区视频二区国产精品| 日韩av免费看网站| 亚洲色图综合网| 亚洲国产成人久久综合一区| 日韩精品中文字幕在线播放| 91精品久久久久久| 美女av一区二区| 亚洲午夜精品久久久久久性色| 国产自摸综合网| 欧美激情国产高清| 亚洲九九九在线观看| 国产精品视频午夜| 高清一区二区三区四区五区| 亚洲精品视频播放| 欧洲s码亚洲m码精品一区| 久久香蕉精品香蕉| 亚洲欧美日韩国产成人| 国内精品国产三级国产在线专| 精品视频在线播放色网色视频| 国产精品午夜国产小视频| 国产精品久久久久久久9999| 国产精品成人av在线| 久久久久久亚洲精品中文字幕| 亚洲日本欧美日韩高观看| 精品国产91久久久久久老师| 欧美国产日韩二区| 国产成人精品免费久久久久| 正在播放欧美一区| 色综合久综合久久综合久鬼88| 亚洲精品在线看| 亚洲综合中文字幕在线| 亚洲精品狠狠操| 国产精品99久久久久久www| 精品一区二区亚洲| 亚洲黄色www网站| 91在线视频精品| 亚洲欧美在线第一页| 久久久免费观看视频| 国产在线高清精品| 亚洲成色777777女色窝| 亚洲专区中文字幕| 色噜噜狠狠狠综合曰曰曰| 亚洲性视频网址| 国产精品白嫩初高中害羞小美女| 久久久久久久一区二区三区| 最近更新的2019中文字幕| www.xxxx欧美| 97视频在线观看免费高清完整版在线观看| 欧美韩国理论所午夜片917电影| 欧美大胆a视频| 亚洲国产精品免费| 亚洲色图av在线| 78m国产成人精品视频| 欧美成人高清视频| 国产精品久久久久久久久久久久久久| 国产精品成人观看视频国产奇米| 夜夜嗨av色一区二区不卡| 亚洲第一精品夜夜躁人人爽| 中文日韩在线观看| 国产精品一二三在线| 中文字幕精品在线视频| 久久全球大尺度高清视频| 成人久久一区二区三区| 国产精品成人aaaaa网站| 精品动漫一区二区| 亚洲精品久久久久中文字幕二区| 国产精品揄拍一区二区| 91精品国产高清| 欧美亚洲视频在线看网址| 成人情趣片在线观看免费| 日韩国产精品视频| 日韩一区二区欧美| 成人黄色av播放免费| 色综合久久88色综合天天看泰| 久久久久久久久久久久久久久久久久av| 久久精品亚洲94久久精品| 欧美国产日韩中文字幕在线| 国产91精品青草社区| 国产精品免费久久久| 欧美在线影院在线视频| 国产精品av在线播放| 国产精品免费一区二区三区都可以| www.欧美精品一二三区| 中文字幕v亚洲ⅴv天堂| 色综合天天狠天天透天天伊人| 欧美一区二区三区艳史| 国产精品美女无圣光视频| 97视频在线免费观看| 日韩网站在线观看| 欧美一级大胆视频| 欧美激情手机在线视频| 国产精品久久久久久久久久免费| 最新91在线视频| 成人国产精品免费视频| 亚洲自拍偷拍在线| 欧美日韩中文字幕综合视频| www日韩中文字幕在线看| 国产偷国产偷亚洲清高网站| 久久久久久久久久久久久久久久久久av| 精品一区二区三区四区在线| 国产91精品久久久久久| 日本亚洲欧美三级| 欧美日韩性生活视频| 精品国产自在精品国产浪潮| 亚洲天堂av网| 91麻豆国产语对白在线观看| 国产午夜精品全部视频在线播放| 国产视频精品va久久久久久| 色综合久久悠悠| 国产999在线观看| 国产精品99久久久久久久久久久久| 在线观看精品自拍私拍| 国产精品自拍偷拍视频| 国产精品日日做人人爱| 亚洲天堂免费在线| 国产成人精品午夜| 国产97免费视| 久久99青青精品免费观看| 91亚洲永久免费精品| 久久免费国产精品1| 在线日韩第一页| 亚洲精选一区二区| 成人中文字幕+乱码+中文字幕| 色阁综合伊人av| 国产男人精品视频| 91精品视频大全| 亚洲精品视频二区| 久久99精品国产99久久6尤物| 国产精品久久久久免费a∨大胸| 久久久在线视频| 中文字幕亚洲欧美日韩2019| 国产视频久久久| 欧美插天视频在线播放| 色一区av在线| 久久久精品视频成人| 日韩高清av一区二区三区| 欧美日韩国产成人在线观看| 国产精品午夜一区二区欲梦| 日韩在线免费av| 亚洲老头老太hd| 国产亚洲一区精品| 欧洲精品久久久| 伊是香蕉大人久久| 6080yy精品一区二区三区| 97在线看免费观看视频在线观看| 另类天堂视频在线观看| 欧美丰满片xxx777| 亚洲男子天堂网| 欧美成年人视频| 国产精品亚洲综合天堂夜夜| 疯狂做受xxxx高潮欧美日本| 国产精品欧美一区二区三区奶水|