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

正文內(nèi)容

oracle第15章plsql程序設(shè)計(jì)-文庫(kù)吧在線文庫(kù)

  

【正文】 OUT或 IN OUT模式參數(shù)。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 18 ? 創(chuàng)建一個(gè)以部門號(hào)為參數(shù),返回該部門最高工資的函數(shù)。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 14 ( 3)存儲(chǔ)過(guò)程的管理 ? 修改存儲(chǔ)過(guò)程 ? CREATE OR REPLACE PROCEDURE procedure_name ? 查看存儲(chǔ)過(guò)程及其源代碼 ? 查詢數(shù)據(jù)字典視圖 USER_SOURCE ? SELECT name,text FROM user_source WHERE type=39。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 13 ? DECLARE ? v_avgsal %TYPE。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 11 ? 創(chuàng)建一個(gè)存儲(chǔ)過(guò)程,以部門號(hào)為參數(shù),返回該部門的人數(shù)和最高工資。|| ? )。 ? BEGIN ? SELECT avg(sal) INTO v_sal FROM emp WHERE deptno=p_deptno。 IN OUT模式參數(shù)只能是變量,不能是常量或表達(dá)式。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 7 ? 參數(shù)說(shuō)明 ? 參數(shù)的模式 ? IN(默認(rèn)參數(shù)模式)表示當(dāng)過(guò)程被調(diào)用時(shí),實(shí)參值被傳遞給形參;在過(guò)程內(nèi),形參起常量作用,只能讀該參數(shù),而不能修改該參數(shù);當(dāng)子程序調(diào)用結(jié)束返回調(diào)用環(huán)境時(shí),實(shí)參沒(méi)有被改變。 IN參數(shù)為引用傳遞,即實(shí)參的指針被傳遞給形參;OUT, IN OUT參數(shù)為值傳遞,即實(shí)參的值被復(fù)制給形參。||39。The department doesn’’t exists!39。The department don’’t exists!39。 ? return_deptinfo(10,v_avgsal,v_count)。 ? 刪除存儲(chǔ)過(guò)程 ? DROP PROCEDURE ? DROP PROCEDURE show_emp。 ? RETURN v_maxsal。 ? BEGIN ? SELECT dname INTO v_dname FROM dept ? WHERE deptno=p_deptno。 ? v_num NUMBER。|| ? v_avgsal||39。 ? 函數(shù)重編譯 ? ALTER FUNCTION… COMPILE ? ALTER FUNCTION ret_maxsal COMPILE。 v_avgsal %TYPE。|| )。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 30 ?存儲(chǔ)子程序與局部子程序區(qū)別在于: ?存儲(chǔ)子程序己經(jīng)編譯好放在數(shù)據(jù)庫(kù)服務(wù)器端,可以直接調(diào)用,而局部子程序存在于定義它的語(yǔ)句塊中,在運(yùn)行時(shí)先進(jìn)行編譯; ?存儲(chǔ)子程序不能重載,而局部子程序可以進(jìn)行重載; ?存儲(chǔ)子程序可以被任意的 PL/SQL塊調(diào)用,而局部子程序只能在定義它的塊中被調(diào)用。 ? EXCEPTION ? WHEN NO_DATA_FOUND THEN ? (39。|| ? )。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 34 ? BEGIN ? show_empinfo(7902)。 ? END 。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 41 ? 創(chuàng)建一個(gè)軟件包,包括 2個(gè)變量、 2個(gè)過(guò)程和 1個(gè)異常。 ( 2)創(chuàng)建包體 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 43 ?注意: ?包體中函數(shù)和過(guò)程的原型必須與包規(guī)范中的聲明完全一致; ?只有在包規(guī)范已經(jīng)創(chuàng)建的條件下,才可以創(chuàng)建包體; ?如果包規(guī)范中不包含任何函數(shù)或過(guò)程,則可以不創(chuàng)建包體。 ? END IF。 ? IF p_sal BETWEEN minsal AND maxsal THEN ? INSERT INTO emp(empno,sal) VALUES(p_empno,p_sal)。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 46 包的調(diào)用 ? 在包規(guī)范聲明的任何元素是公有的,在包外都是可見(jiàn)的 ? 包外:通過(guò) ; ? 包內(nèi):直接通過(guò)元素名進(jìn)行調(diào)用。 ? 如果兩個(gè)子程序參數(shù)只是名稱和模式不同,則不能重載。 ? PROCEDURE overloadchar(parameter IN VARCHAR2)。 ? END LOOP。 ? END show_emp。 ? e_beyondbound EXCEPTION。t exist39。 ? END update_sal。 ? BEGIN ? SELECT min(sal), max(sal) INTO minsal,maxsal FROM emp。 ? ALTER PACKAGE pkg_emp COMPILE BODY。 ? INSTEAD OF觸發(fā)器 ? 建立在視圖上的觸發(fā)器,響應(yīng)視圖上的 INSERT,UPDATE, DELETE操作。默認(rèn)為語(yǔ)句級(jí)觸發(fā)器,即觸發(fā)事件發(fā)生后,觸發(fā)器只執(zhí)行一次。 Trigger_body Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 69 ?語(yǔ)句級(jí)觸發(fā)器 ?在默認(rèn)情況下創(chuàng)建的 DML觸發(fā)器為語(yǔ)句級(jí)觸發(fā)器,即觸發(fā)事件發(fā)生后,觸發(fā)器只執(zhí)行一次。SUN39。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 71 ? 如果觸發(fā)器響應(yīng)多個(gè) DML事件,而且需要根據(jù)事件的不同進(jìn)行不同的操作,則可以在觸發(fā)器體中使用 3個(gè)條件謂詞。 ? ELSE ? FOR v_dept IN (SELECT deptno,count(*) num FROM emp ? GROUP BY deptno) LOOP ? (||39。 ? 在行級(jí)觸發(fā)器中引入了 :old和 :new 兩個(gè)標(biāo)識(shí)符,來(lái)訪問(wèn)和操作當(dāng)前被處理記錄中的數(shù)據(jù)。 ? ELSIF UPDATING THEN ? (:||39。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 79 ? 在行級(jí)觸發(fā)器中,可以使用 WHEN子句進(jìn)一步控制觸發(fā)器的執(zhí)行。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 83 ? 創(chuàng)建一個(gè)包括員工及其所在部門信息的視圖 empdept,然后向視圖中插入一條記錄( 2345,’TOM’,3000,’SALES’)。 ? BEGIN ? SELECT deptno INTO v_deptno ? FROM dept WHERE dname=:。 ? 注意 ? STARTUP和 SHUTDOWN事件只能激發(fā)基于數(shù)據(jù)庫(kù)的觸發(fā)器。 ? CREATE OR REPLACE TRIGGER log_creations ? AFTER CREATE ON DATABASE ? BEGIN ? INSERT INTO ddl_creations ? VALUES(ora_login_user, ora_dict_obj_type, ? ora_dict_obj_name, ora_dict_obj_owner, sysdate)。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 96 ?為了實(shí)現(xiàn)在更新員工所在部門或向部門插入新員工時(shí),部門中員工人數(shù)不超過(guò) 8人,可以在 emp表上創(chuàng)建兩個(gè)觸發(fā)器,同時(shí)創(chuàng)建一個(gè)共享信息的包。TOO MANY EMPLOYEES IN DEPARTMENT 39。 ? UPDATE emp SET deptno=10 WHERE empno=7369。 ? 觸發(fā)器的大小不能超過(guò) 32K。 ? DROP TRIGGER trigger_name。語(yǔ)法為 ? ALTER TABLE table_name ENABLE|DISABLE ALL TRIGGERS。因?yàn)橛|發(fā)器作為觸發(fā)語(yǔ)句執(zhí)行的一部分,處于同一個(gè)事務(wù)中。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 99 ? INSERT INTO emp(empno,ename,sal,deptno) VALUES(2,39。 ? END。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 94 ? 當(dāng)對(duì)一個(gè)表創(chuàng)建行級(jí)觸發(fā)器,或創(chuàng)建由 DELETE CASCADE操作而激發(fā)的語(yǔ)句級(jí)觸發(fā)器時(shí),有下列兩條限制: ? 不能讀取或修改任何觸發(fā)語(yǔ)句的變異表; ? 不能讀取或修改觸發(fā)表的一個(gè)約束表的 PRIMARY KEY, UNIQUE 或 FOREIGN KEY關(guān)鍵字的列 , 但 可以修改其他列。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 91 ? 在系統(tǒng)觸發(fā)器內(nèi)部可以使用一些事件屬性函數(shù)以獲得觸發(fā)事件的信息。 ? 觸發(fā)時(shí)間可以是 BEFORE,也可以是 AFTER。,3000, 39。)。 39。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 77 ?為 emp表創(chuàng)建一個(gè)觸發(fā)器,當(dāng)插入新員工時(shí)顯示新員工的員工號(hào)、員工名;當(dāng)更新員工工資時(shí),顯示修改前后員工工資;當(dāng)刪除員工時(shí),顯示被刪除的員工號(hào)、員工名。 ? END IF。 ? BEGIN ? IF INSERTING THEN ? SELECT count(*) INTO v_count FROM emp。t operate ? in weekend. 39。nls_date_language= ? american39。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 65 DML觸發(fā)器 ? DML觸發(fā)器的種類及執(zhí)行順序 ? 創(chuàng)建 DML觸發(fā)器 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 66 ( 1) DML觸發(fā)器的種類及執(zhí)行順序 ?DML觸發(fā)器的種類 ?語(yǔ)句級(jí)前觸發(fā)器 ?語(yǔ)句級(jí)后觸發(fā)器 ?行級(jí)前觸發(fā)器 ?行級(jí)后觸發(fā)器 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 67 ? DML觸發(fā)器的執(zhí)行順序 ?如果存在,則執(zhí)行語(yǔ)句級(jí)前觸發(fā)器。如 DML、 DDL、數(shù)據(jù)庫(kù)系統(tǒng)事件等。 ? 當(dāng)特定事件發(fā)生時(shí),由系統(tǒng)自動(dòng)調(diào)用執(zhí)行,而不能由應(yīng)用程序顯式地調(diào)用執(zhí)行。 ? SELECT name,text FROM user_source WHERE type=39。 ? EXCEPTION ? WHEN e_beyondbound THEN ? (39。 ? END IF。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 55 ? CREATE OR REPLACE PACKAGE BODY pkg_emp ? AS ? PROCEDURE update_sal(p_empno NUMBER, p_sal NUMBER) ? AS ? BEGIN ? IF p_sal BETWEEN minsal AND maxsal THEN ? UPDATE emp SET sal=p_sal WHERE empno=p_empno。 ? 包的初始化過(guò)程只在包第一次被調(diào)用時(shí)執(zhí)行,因此也稱為一次性過(guò)程,它是一個(gè)匿名的 PL/SQL塊,在包體結(jié)構(gòu)的最后,以 BEGIN開始。 ? FOR v_emp IN (SELECT * FROM emp ? WHERE deptno=v_deptno) LOOP ? (||39。 ? END pkg_overload。
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1