<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    即興的靈感

    思維是一種藝術(shù); 藝術(shù)需要靈感。

    博客好友

    最新評論

    Oracle之函數(shù)與觸發(fā)器

    ??? 今天寫有關(guān)Oracle中函數(shù)與觸發(fā)器的內(nèi)容,在數(shù)據(jù)庫中定義并使用存儲過程、函數(shù)、觸發(fā)器,可以提高用戶訪問數(shù)據(jù)庫的效率。

    ??? 數(shù)據(jù)庫中函數(shù)包含四個部分:聲明、返回值、函數(shù)體和異常處理

    ?1?create?or?replace?function?getname(sno?varchar2 )
    ?2??return?varchar?is

    ?3?????????name?varchar(12 );
    ?4??begin

    ?5?????????select?ename?into?name?from?emp?where?empno= sno;
    ?6?????????return
    ?name;
    ?7?
    ?exception
    ?8??????? ...

    12??end ;
    13?

    ??? 觸發(fā)器是一種特殊的存儲過程,類似于其它編程語言中的事件函數(shù),允許為 INSERT、UPDATE、DELETE 創(chuàng)建觸發(fā)器,當(dāng)在表(視圖)中插入、更新、刪除記錄(前、后)時,觸發(fā)一個或一系列 T-SQL 語句。

    ? ? 創(chuàng)建在
    STUDENT 表上的插入觸發(fā)器,當(dāng)在 STUDENT 表中插入數(shù)據(jù)時候觸發(fā)器將被觸發(fā),執(zhí)行體將被執(zhí)行
    ?? 插入觸發(fā)器
    ?1
    ?create?or?replace?trigger
    ?tg_insert
    ?2??before?insert?on?student??????????????? --
    可設(shè)置在插入前或插入后
    ?3??begin

    ?4??????? ...
    ?5??end ;
    ?

    ??
    更新觸發(fā)器
    ?8? create?or?replace?trigger
    ?tg_update
    ?9??after?update?on
    ?student
    10??for?each?row

    12??begin
    13????? ...
    14??END ;
    15?

    觸發(fā)器兩個特殊行級變量: :New 新值 ? ? :Old 舊值 ? 分別代表更新值,被更新的值

    ?1?create?or?replace?trigger ?tg_insert
    ?2?after?update?on
    ?student
    ?3?for
    ?each?row
    ?4?when?(:old.sex=’j’)??????? --
    當(dāng)old.sex為J時候才執(zhí)行觸發(fā)器內(nèi)容
    ?5?begin

    ?7????DBMS_OUTPUT.PUT_LINE(:new.stuname||'??'|| :old.stuname);
    ?8????DBMS_OUTPUT.PUT_LINE(:new.sex||'??'||
    :old.sex);
    ?9?end
    ;
    10?

    判斷復(fù)合型觸發(fā)器

    ?1?create?or?replace?trigger ?trgstudeng
    ?2?before?insert?or?update?or?delete?on
    ?student
    ?3?for
    ?each?row
    ?4?begin

    ?5?????if??inserting?then
    ?6???? ...
    ?8?????end?if ;
    ?9?????if?deleting?then

    10???? ...
    12?????end?if ;
    13?
    exception
    14? ?? ...

    16?END ;
    17?

    ? ? 觸發(fā)器功能強(qiáng)大,可以實現(xiàn)許多復(fù)雜的功能,但如果濫用會造成數(shù)據(jù)庫及應(yīng)用程序的維護(hù)困難。
    ? (轉(zhuǎn)載請注明出處)?


    ?
    鳳凰涅槃/浴火重生/馬不停蹄/只爭朝夕
    ???? 隱姓埋名/低調(diào)華麗/簡單生活/完美人生

    posted on 2007-10-05 00:04 poetguo 閱讀(3339) 評論(5)  編輯  收藏 所屬分類: Oracle

    評論

    # re: Oracle之函數(shù)與觸發(fā)器 2007-10-06 10:30 登高視遠(yuǎn)

    謝了,,,剛好用到  回復(fù)  更多評論   

    # re: Oracle之函數(shù)與觸發(fā)器 2007-10-06 10:31 登高視遠(yuǎn)

    觸發(fā)器原來這么好玩  回復(fù)  更多評論   

    # re: Oracle之函數(shù)與觸發(fā)器 2007-10-06 10:44 improviser

    濫用會造成數(shù)據(jù)庫及應(yīng)用程序的維護(hù)困難!!!!!!  回復(fù)  更多評論   

    # re: Oracle之函數(shù)與觸發(fā)器[未登錄] 2009-07-02 10:28

    能不能寫些關(guān)于oracle的其它語句使用如:變量如何聲明并使用, if..else語法如何使用等,多謝!  回復(fù)  更多評論   

    # re: Oracle之函數(shù)與觸發(fā)器 2010-01-22 17:39 asdf

    感謝,今天讓我解決了個大麻煩  回復(fù)  更多評論   

    主站蜘蛛池模板: 香蕉成人免费看片视频app下载| 国产亚洲av片在线观看18女人| 国产又粗又猛又爽又黄的免费视频 | 一级全免费视频播放| 国产 亚洲 中文在线 字幕| 老妇激情毛片免费| 欧洲人免费视频网站在线| 国产免费不卡v片在线观看| 免费大黄网站在线观| 亚洲av成人无码久久精品 | 两性色午夜免费视频| 午夜精品射精入后重之免费观看| 成年女人毛片免费视频| 亚洲综合AV在线在线播放| 亚洲狠狠成人综合网| 最近的2019免费中文字幕| 在线观看免费大黄网站| 337p日本欧洲亚洲大胆精品555588| 亚洲aⅴ无码专区在线观看春色 | 一级黄色片免费观看| 99re在线视频免费观看| 亚洲国产高清在线一区二区三区 | 亚洲高清无码综合性爱视频| 亚洲日韩精品无码一区二区三区| 久久精品国产99国产精品亚洲| 精品一区二区三区免费视频| 久久不见久久见中文字幕免费| 国产av无码专区亚洲av果冻传媒| 日本亚洲色大成网站www久久| 久久精品私人影院免费看| 免费国产在线观看不卡| 国产精品亚洲专区在线观看| 免费看又黄又无码的网站| 亚洲精品A在线观看| 亚洲大码熟女在线观看| 久久久久久曰本AV免费免费| 亚洲AV永久无码精品一百度影院| 全部一级一级毛片免费看| 国产无遮挡裸体免费视频 | 久久精品国产亚洲一区二区三区 | 成人免费大片免费观看网站|