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

首頁 > 數據庫 > Oracle > 正文

Oracle數據創建虛擬列和復合觸發器的方法

2024-08-29 13:58:40
字體:
來源:轉載
供稿:網友
Oracle的虛擬列解決了很多需要使用觸發器或者需要通過代碼進行計算統計產生數據信息的問題,而復合觸發器實際上是作為一個整體定義的四個不同的觸發器來執行操作,需要了解的朋友可以參考下
 

本文我們主要介紹Oracle數據庫的虛擬列和復合觸發器方面的相關知識,包括虛擬列和復合觸發器的創建等,并給出了創建示例,接下來就讓我們來一起了解這一過程吧。

一、虛擬列

Oralce 的虛擬列解決了以前很多需要使用觸發器或者需要通過代碼進行計算統計才能產生的數據信息。以前每次對其他的列進行統計,產生新列的時候都是采用在select 語句中通過統計計算增加新列的方法,執行效率很低,而且由于使查詢SQL語句變得冗長、復雜很容易出錯。嚴重的降低了開發效率和程序的執行效率。Oralce虛擬列的引入解決了這個問題。

Oralce 的虛擬列也有一些問題。不能使用insert into talbe_name values ().語句,在向含有虛擬列的表中添加數據時,要求insert語句的必須把添加的表的列名寫出來。insert into table_name (list1,list2,...listend)列名中不能出現虛擬列名,否則會提示錯誤。

創建虛擬列的實例如下:

create table sales  (  sales_id number,  cust_id number,  sales_amt number,  sale_category varchar2(6) /* 虛擬列名及數據類型*/  generated always as  (  case when sales_amt <= 10000 then 'LOW'  when sales_amt > 10000 and sales_amt <= 100000 then 'MEDIUM'  when sales_amt > 100000 and sales_amt <= 1000000 then 'HIGH' else 'ULTRA' end  ) virtual /*虛擬列值函數內容*/  ); 

虛擬列被指定為“generated always as”,這意味著,列值在運行時生成,而非作為表的一部分進行存儲。該子句的后面是在詳細的 CASE 語句中計算值的方法。最后,指定了“virtual”以加強這是一個虛擬列的事實。

二、復合觸發器

復合觸發器實際上是作為一個整體定義的四個不同的觸發器。例如,UPDATE 復合觸發器將 before statement、before row、after statement 和 after row 都合并到一個復合觸發器中。這是一個單一代碼片段,因此您可以像任何其他單一 PL/SQL 代碼一樣來傳遞變量。

下面我們來引用一個示例,以幫助說明。注:創建了一個與sales表相同的表sales_log.

create or replace trigger tri_sales  for update of sales_amt on SALES  compound trigger  type ty_sales_log is table of sales_log%rowtype  index by pls_integer;  coll_sales_log ty_sales_log;  ctr pls_integer:=0;  before statement is  begin  dbms_output.put_line('in before statement');  end before statement;  before each row is  begin  dbms_output.put_line('in before each row');  end before each row;  after each row is  begin  ctr := ctr+1;  dbms_output.put_line('in after each row.sales_amt'||:new.sales_amt);  coll_sales_log(ctr).sales_id := :old.sales_id;  coll_sales_log(ctr).cust_id := :old.cust_id;  coll_sales_log(ctr).sales_amt := :new.sales_amt;  end after each row;  after statement is  begin  dbms_output.put_line('in after statement');  forall counter in 1..coll_sales_log.count()  insert into sales_log(sales_id,cust_id,sales_amt)  values (coll_sales_log(counter).sales_id,coll_sales_log(counter).cust_id,coll_sales_log(counter).sales_amt);  end after statement;    /* 不能使用Insert into sales_log values  (coll_sales_log(counter));添加*/  end tri_sales; 

上面實例包含了4個不同觸發形式,它們之間是獨立的執行的。

需要注意的是:sales_log 表中有虛擬列是不能使用Insert into sales_log  values  (coll_sales_log(counter));直接進行添加操作的,我們需要標明表中的列名。否則會出現錯誤。

關于Oracle數據創建虛擬列和復合觸發器的方法就介紹到這里了,希望本次的介紹能夠對您有所收獲!



注:相關教程知識閱讀請移步到oracle教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品成人一区二区| 欧美麻豆久久久久久中文| 91老司机在线| 国产亚洲精品美女久久久| 亚洲电影在线看| 日韩欧美在线视频免费观看| 亚洲成人亚洲激情| 亚洲影视中文字幕| 国产成人精品一区二区在线| 欧美成在线观看| 中日韩美女免费视频网址在线观看| 国产精品视频永久免费播放| 欧美日韩激情美女| 九九精品视频在线| 亚洲成人aaa| 伊人精品在线观看| 国产精品无码专区在线观看| 欧美交受高潮1| 欧美在线观看网站| 欧美日韩美女在线观看| 欧美wwwwww| 97成人精品区在线播放| 欧美最近摘花xxxx摘花| 91极品女神在线| 亚洲国产精品久久久久秋霞蜜臀| 欧美国产日产韩国视频| 欧美激情一区二区三区高清视频| 精品久久在线播放| 亚洲www在线| 欧美激情国内偷拍| 亚洲欧美成人精品| 九九综合九九综合| 久久精品国产91精品亚洲| 韩国v欧美v日本v亚洲| 国产精品一区二区性色av| 国内精品免费午夜毛片| 欧美黑人巨大精品一区二区| 91久久精品国产91性色| 亚洲欧美国产制服动漫| 欧美性生活大片免费观看网址| 亚洲国产精品久久久久久| 欧美日韩中文在线观看| 亚洲人高潮女人毛茸茸| 亚洲精品短视频| 一区二区欧美在线| 亚洲伊人一本大道中文字幕| 精品国产鲁一鲁一区二区张丽| 国产精品一区久久久| 欧美一级成年大片在线观看| 亚洲午夜国产成人av电影男同| 黄色精品在线看| 国产一区二区三区视频免费| 日韩av片永久免费网站| 色播久久人人爽人人爽人人片视av| 国产精品久久久久久久久借妻| 亚洲美女久久久| 国产97免费视| 色先锋资源久久综合5566| 精品丝袜一区二区三区| 欧美成人一二三| 美日韩精品免费观看视频| 中文字幕精品国产| 中文字幕亚洲无线码在线一区| 亚洲国产女人aaa毛片在线| 欧美性猛交xxxx富婆弯腰| 亚洲r级在线观看| www.日韩系列| 亚洲乱码国产乱码精品精| 国产精品人人做人人爽| 亚洲视频在线免费看| 日韩av在线网站| 国产精品扒开腿做| 九色91av视频| 国产精品久久婷婷六月丁香| 久久色在线播放| 欧美成人第一页| 国产精品高潮呻吟久久av无限| 久久人人爽人人爽人人片av高清| 亚洲大胆人体在线| 欧美日韩999| 成人欧美一区二区三区黑人| 黄色91在线观看| 91久久精品国产91久久| 亚洲欧洲成视频免费观看| 久久国产加勒比精品无码| 韩国视频理论视频久久| 亚洲一区二区日本| 美女久久久久久久| 中文字幕不卡av| 在线观看视频亚洲| 色妞一区二区三区| 97婷婷大伊香蕉精品视频| 亚洲性生活视频在线观看| 在线日韩欧美视频| 久久成年人视频| 91精品国产91久久久久福利| 日日摸夜夜添一区| 97福利一区二区| 中文字幕一区电影| 91国内揄拍国内精品对白| 北条麻妃久久精品| 国产99视频精品免视看7| 欧美电影在线观看完整版| 亚洲天天在线日亚洲洲精| 欧美性videos高清精品| 久热精品视频在线观看一区| 精品五月天久久| 欧美日韩一区二区免费在线观看| 欧美性xxxx极品hd满灌| 欧美日韩国产一区在线| 美日韩精品免费视频| 日本中文字幕久久看| 91av在线不卡| 久久九九有精品国产23| 成人性生交大片免费看小说| 国产日本欧美一区二区三区在线| 亚洲天堂网站在线观看视频| 国产一区二区黑人欧美xxxx| 91美女高潮出水| 国内精久久久久久久久久人| 欧美激情视频一区二区| 亚洲国产精品嫩草影院久久| 亚洲精品有码在线| 欧美激情高清视频| 亚洲韩国日本中文字幕| 午夜精品久久久久久久男人的天堂| 日韩一区av在线| 亚洲欧美变态国产另类| 欧美精品www| 91免费看国产| 日韩欧美在线一区| 97精品久久久中文字幕免费| 久久精品99无色码中文字幕| 国产一区二区三区日韩欧美| 久久国产精品影视| 亚洲成色999久久网站| 欧美成人精品三级在线观看| 成人欧美一区二区三区在线湿哒哒| 欧美国产精品日韩| 久久精品人人爽| 国产精品国产福利国产秒拍| 亚洲精品日韩av| 亚洲国产精品va在线看黑人| 久久久久久久久久久成人| 欧美一级大片视频| 性金发美女69hd大尺寸| 国产做受高潮69| 国产日本欧美一区二区三区| 国产免费亚洲高清| 在线播放国产一区中文字幕剧情欧美| 久久91精品国产91久久跳| 欧美在线视频免费观看| 国产精品扒开腿做| 国产精品久久久久久五月尺| 国产精品av在线播放| 亚洲国产第一页| 久久久久久久久亚洲| 亚洲xxxx妇黄裸体| 亚洲男人天堂九九视频| 国产美女精品视频免费观看| 欧美精品成人在线| 久久这里只有精品99| 亚洲国产美女久久久久| 亚洲男人天堂2024|