gv天堂gv无码男同在线,欧美视频你懂的,毛片一级毛片毛片一级一级毛毛片,亚洲黄色视频免费播放,满18岁免费看的尤物视频,日本欧美三级片免费看,亚洲综合伊人影视在线播放

  • 首 頁
  • 采購市場(chǎng)
  • 企業(yè)查詢
  • 營(yíng)銷建站
  • 營(yíng)銷推廣
  • 行業(yè)資訊
  • 發(fā)布信息
  • Oracle的觸發(fā)器怎么寫?

    懸賞分:20|
    參照scott用戶下的表,建立一個(gè)觸發(fā)器sal_check,當(dāng)一個(gè)員工提升為manager(job由salesman clerk 或analyst變?yōu)閙anager)時(shí),bonus表中的薪水增長(zhǎng)10%;
    自己寫了總是編譯不過...求教高手
    知識(shí)庫標(biāo)簽: 觸發(fā)器   |列兵
    我以前做的一個(gè)例子,你參考下吧
    第八章 觸發(fā)器(Trigger)
    --格式:
    create or replace trigger 名稱
    [after|before][delete|update|insert]
    [on 表 | on schema]
    [referencing new as 別名 old as 別名]
    [for each row]
    declare
    ....
    begin
    ...
    exception
    ....
    end;
    --創(chuàng)建一個(gè)delete類型行級(jí)觸發(fā)器
    --刪除的一行數(shù)據(jù)保存在:old
    create or replace trigger emp_delete_row_trigger
    after delete
    on emp
    referencing new as n old as o
    for each row
    begin
    dbms_output.put_line('emp_delete_row_trigger called.');
    dbms_output.put_line('刪除員工:' || :o.empno || ' ' || :o.ename);
    end;
    delete from emp where empno=7499;
    delete from emp;
    --創(chuàng)建一個(gè)insert類型行級(jí)觸發(fā)器
    --插入的一行新數(shù)據(jù)保存在:new
    create or replace trigger emp_insert_row_trigger
    after insert
    on emp
    for each row
    begin
    dbms_output.put_line('emp_insert_row_trigger called.');
    dbms_output.put_line('添加員工:' || :new.empno || ' ' || :new.ename);
    end;
    insert into emp(empno,ename) values(1,'empxxx');
    --創(chuàng)建一個(gè)update類型行級(jí)觸發(fā)器
    --修改前的數(shù)據(jù)保存在:old
    --修改后的數(shù)據(jù)保存在:new
    create or replace trigger emp_update_row_trigger
    after update
    on emp
    for each row
    begin
    dbms_output.put_line('emp_update_row_trigger called.');
    dbms_output.put_line('修改前:' || :old.empno || ' ' || :old.ename);
    dbms_output.put_line('修改后:' || :new.empno || ' ' || :new.ename);
    end;
    update emp
    set ename='xxxx'
    where empno=7499;
    --語句級(jí)觸發(fā)器(update,delete,insert)
    create or replace trigger delete_stmt_trigger
    after delete
    on emp
    begin
    dbms_output.put_line('delete_stmt_trigger called.');
    end;
    delete from emp;
    --判斷觸發(fā)器類型
    ----------------------------------------------------------
    --每進(jìn)行一次交易,就要調(diào)用觸發(fā)器,自動(dòng)扣除或增加賬戶金額
    ----------------------------------------------------------
    create table account
    (
    customerName varchar2(30) primary key,
    cardID varchar2(8),
    currentMoney number
    );
    insert into account values('Daivd','10010001',5000);
    insert into account values('Jason','10010002',3000);
    create table trans
    (
    transDate date,
    cardID varchar2(8),
    transType varchar2(10),
    transMoney number
    );
    insert into trans
    values(sysdate,'10010001','取款',1000);
    create or replace trigger trans_trigger
    before insert
    on trans
    for each row
    declare
    v_currentMoney account.currentMoney%type;
    begin
    --判斷類型
    if :new.transType='取款' then
    --取款
    select currentMoney into v_currentMoney
    from account
    where cardID=:new.cardID;

    if v_currentMoney < :new.transMoney then
    raise_application_error(-20001,'余額不足');
    end if;

    update account
    set currentMoney=currentMoney-:new.transMoney
    where cardID=:new.cardID;
    else
    --存款
    update account
    set currentMoney=currentMoney+:new.transMoney
    where cardID=:new.cardID;
    end if;
    exception
    when no_data_found then
    raise_application_error(-20002,'無效的帳戶');
    end;
    --模式(schema)級(jí)觸發(fā)器
    create or replace trigger schema_trigger
    before drop
    on schema
    begin
    dbms_output.put_line('schema_trigger called');
    dbms_output.put_line(ora_dict_obj_name);
    dbms_output.put_line(ora_dict_obj_type);

    if ora_dict_obj_name='ACCOUNT' then
    raise_application_error(-20003,'ACCOUNT表不能被刪除');
    end if;
    end;
    drop table account;
    --ora_dict_obj_name 操作對(duì)象名稱
    --ora_dict_obj_type 操作對(duì)象類型
    --啟用觸發(fā)器
    alter trigger schema_trigger enable;
    --禁用觸發(fā)器
    alter trigger schema_trigger disable;
    為最佳答案評(píng)分?
    100% (1)
    不好 0% (0)
    (目前有 1 個(gè)人評(píng)價(jià))

    我來回答這個(gè)問題

    立即登陸回答獲取會(huì)員積分,提高用戶級(jí)別
    友情鏈接:
    Copyright © 商名網(wǎng) All Rights Reserved.