freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

oracle第15章plsql程序設(shè)計(jì)(文件)

2025-02-26 11:03 上一頁面

下一頁面
 

【正文】 雇員信息 ? CREATE OR REPLACE TRIGGER trg_emp_weekend ? BEFORE INSERT OR UPDATE OR DELETE ON emp ? BEGIN ? IF TO_CHAR(SYSDATE, 39。) IN(39。) ? THEN ? raise_application_error(20230, 39。)。 謂詞 行為 INSERTING 如果觸發(fā)語句是 INSERT,則為 TRUE; 否則為 FALSE UPDATING 如果觸發(fā)語句是 UPDATE,則為 TRUE; 否則為 FALSE DELETING 如果觸發(fā)語句是 DELETE,則為 TRUE; 否則為 FALSE Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 72 ?為 emp表創(chuàng)建一個(gè)觸發(fā)器,當(dāng)執(zhí)行插入操作時(shí),統(tǒng)計(jì)操作后員工人數(shù);當(dāng)執(zhí)行更新工資操作時(shí),統(tǒng)計(jì)更新后員工平均工資;當(dāng)執(zhí)行刪除操作時(shí),統(tǒng)計(jì)刪除后各個(gè)部門的人數(shù)。 ? (v_count)。 39。 ? END trg_emp_dml。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 75 ? 標(biāo)識(shí)符 ? :old和 :new作為 triggering_table%ROWTYPE類型的兩個(gè)變量 ? 在不同觸發(fā)事件中, :old和 :new的意義不同 觸發(fā)事件 :old :new INSERT 未定義,所有字段都為NULL 當(dāng)語句完成時(shí),被插入的記錄 UPDATE 更新前原始記錄 當(dāng)語句完成時(shí),更新后的記錄 DELETE 記錄被刪除前的原始值 未定義,所有字段都為 NULL Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 76 ? 引用方式 : : : (執(zhí)行部分) 和 (WHEN條件中 ) ? 注意事項(xiàng): ? 是偽記錄,不能作為整個(gè)記錄進(jìn)行賦值或引用 ? 不能傳遞給帶 triggering_table%ROWTYPE參數(shù)的過程和函數(shù) ? 如果觸發(fā)器是建立在嵌套表上, 。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 78 ? CREATE OR REPLACE TRIGGER trg_emp_dml_row ? BEFORE INSERT OR UPDATE OR DELETE ON emp ? FOR EACH ROW ? BEGIN ? IF INSERTING THEN ? (:||39。 39。|| ? :)。 ? 例如,修改員工工資時(shí),保證修改后的工資高于修改前的工資。 ? END trg_emp_update_row。 ? CREATE OR REPLACE VIEW empdept ? AS ? SELECT empno,ename,sal,dname ? FROM emp,dept WHERE = ? WITH CHECK OPTION。SALES39。 ? INSERT INTO emp(empno,ename,sal,deptno) ? VALUES(:,:,v_deptno,:)。 ? 數(shù)據(jù)庫事件 ? STARTUP, SHUTDOWN, SERVERERROR, LOGON, LOGOFF等。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 90 ? 將每個(gè)用戶的登錄信息寫入 temp_table表中。 ? 由于系統(tǒng)沒有為這些事件屬性函數(shù)指定同義詞,因此在調(diào)用時(shí)必須在其前加上 “ SYS.”前綴。 ? END log_creations。 ? 注意 ? 如果 INSERT… VALUES語句只影響一行,那么該語句的行級(jí)前觸發(fā)器不會(huì)把觸發(fā)表當(dāng)做變異表對(duì)待。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 97 ? CREATE OR REPLACE PACKAGE mutate_pkg ? AS ? v_deptno NUMBER(2)。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 98 ? CREATE OR REPLACE TRIGGER smutate_trigger ? AFTER INSERT OR UPDATE OF deptno ON EMP ? DECLARE ? v_num number(3)。|| ? )。WANG39。 ? UPDATE emp SET deptno=10 WHERE empno=7369 ? * ? 第 1 行出現(xiàn)錯(cuò)誤 : ? ORA20233: TOO MANY EMPLOYEES IN DEPARTMENT 10 ? ORA06512: 在 , line 6 ? ORA04088: 觸發(fā)器 39。 ? 觸發(fā)器體所調(diào)用的過程或函數(shù)都不能發(fā)出任何事務(wù)控制語句(自治事務(wù)子程序除外)。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 101 ? 激活或禁用觸發(fā)器 ? 可以激活或禁用某個(gè)觸發(fā)器。 ? 修改觸發(fā)器 ? CREATE OR REPLACE TRIGGER trigger_name ? 重新編譯觸發(fā)器 ? ALTER TRIGGER trigger_name COMPILE。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 總結(jié) ?存儲(chǔ)過程 ?函數(shù) ?局部子程序 ?包 ?觸發(fā)器 103 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 演講完畢,謝謝觀看! 。 ? 刪除觸發(fā)器 ? 當(dāng)觸發(fā)器不再需要時(shí),可以使用 DROP TRIGGER語句刪除觸發(fā)器。 ? 激活或禁用某個(gè)表對(duì)象上的所有觸發(fā)器。 ? 觸發(fā)器體中可以引用 LOB和 OBJECT列,但不能修改該列的值。 執(zhí)行過程中出錯(cuò) Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 100 ? 觸發(fā)器名稱 ? 觸發(fā)器存在于單獨(dú)的名字空間中,在一個(gè)模式中可以與其他對(duì)象同名 ? 觸發(fā)器的限制 ? 不能出現(xiàn)任何事務(wù)控制語句。 ? UPDATE emp SET deptno=10 WHERE empno=7844。 ? END。 ? IF v_num8 THEN ? RAISE_APPLICATION_ERROR(20233, ? 39。 ? CREATE OR REPLACE TRIGGER rmutate_trigger ? BEFORE INSERT OR UPDATE OF deptno ON EMP ? FOR EACH ROW ? BEGIN ? :=:。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 95 ?如果既想更新變異表,同時(shí)又需要查詢變異表,那么如何處理呢 ? ?將行級(jí)觸發(fā)器與語句級(jí)觸發(fā)器結(jié)合起來,在行級(jí)觸發(fā)器中獲取要修改的記錄的信息,存放到一個(gè)軟件包的全局變量中,然后在語句級(jí)后觸發(fā)器中利用軟件包中全局變量信息對(duì)變異表的查詢,并根據(jù)查詢的結(jié)果進(jìn)行業(yè)務(wù)處理。 ? 約束表是指由于引用完整性約束而需要從中讀取或修改數(shù)據(jù)的表,即當(dāng)前表的父表。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 92 ? CREATE TABLE ddl_creations ( ? user_id VARCHAR2(30), ? object_type VARCHAR2(20), ? object_name VARCHAR2(30), ? object_owner VARCHAR2(30), ? creation_date DATE)。 ? END log_user_connection。 ( 2)創(chuàng)建系統(tǒng)觸發(fā)器 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 89 ? 說明 ? 基于數(shù)據(jù)庫( DATABASE)的觸發(fā)器,只要系統(tǒng)中該觸發(fā)事件發(fā)生,且滿足觸發(fā)條件,則觸發(fā)器執(zhí)行; ? 對(duì)于基于模式( SCHEMAN)的觸發(fā)器,只有當(dāng)特定模式中的觸發(fā)事件發(fā)生時(shí),觸發(fā)器才執(zhí)行。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 85 ?觸發(fā)器事件 ?創(chuàng)建系統(tǒng)觸發(fā)器 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 86 ( 1)觸發(fā)事件 ? DDL事件 ? CREATE, ALTER, DROP, RENAME, GRANT, REVOKE, AUDIT, NOAUDIT, COMMENT, TRUNCATE, ANALYZE, ASSOCIATE STATISTICS, DISASSOCIATE STATISTICS等。 ? * ? ERROR 位于第 1 行 : ? ORA01733: 此處不允許虛擬列 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 84 ? CREATE OR REPLACE TRIGGER trig_view ? INSTEAD OF INSERT ON empdept ? FOR EACH ROW ? DECLARE ? v_deptno %type。TOM39。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 82 ? 創(chuàng)建 INSTEAD OF觸發(fā)器的基本語法 ? CREATE [OR REPLACE] TRIGGER trigger_name ? INSTEAD OF triggering_event [OF column_name] ? ON view_name ? FOR EACH ROW ? [WHEN trigger_condition] ? DECLARE ? /*Declarative section is here */ ? BEGIN ? /*Exccutable section si here*/ ? EXCEPTION ? /*Exception section is here*/ ? END [trigger_name]。The salary is lower!39。 ? END trg_emp_dml_row。 ? ELSE ? (:||39。|| ? :)。new都執(zhí)行嵌套表的行, :parent指向父表中的當(dāng)前行。 ? 在行級(jí)觸發(fā)器中可以使用 WHEN條件,進(jìn)一步控制觸發(fā)器的執(zhí)行。 ? END LOOP。 ? (v_sal)。 ? v_sal NUMBER(6,2)。 ? END trg_emp_weekend。39。, 39。, 39。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 68 ( 2)創(chuàng)建 DML觸發(fā)器 ?語法 ? CREATE [OR REPLACE] TRIGGER trigger_name ? BEFORE|AFTER triggering_event [OF column_name] ? ON table_name] ? [FOR EACH ROW] ? [WHEN trigger_condition] ? DECLARE ? /*Declarative section is here */ ? BEGIN ? /*Exccutable section si here*/ ? EXCEPTION ? /*Exception section is here*/ ? END [trigger_name]。 ? 觸發(fā)操作:觸發(fā)器執(zhí)行時(shí)所進(jìn)行的操作。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 64 ? 觸發(fā)級(jí)別:觸發(fā)級(jí)別用于指定觸發(fā)器響應(yīng)觸發(fā)事件的方式。 ? 觸發(fā)事件:激發(fā)觸發(fā)器執(zhí)行的事件。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 62 ( 2)觸發(fā)器的類型 ? DML觸發(fā)器 ? 建立在基本表上的觸發(fā)器,響應(yīng)基本表的 INSERT,UPDATE, DELETE操作。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 59 觸發(fā)器
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1