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

正文內(nèi)容

oracle第15章plsql程序設(shè)計(jì)(完整版)

  

【正文】 ? FUNCTION overloadme RETURN DATE。 ? (1357,4000)。The salary is beyond bound! 39。The salary is beyond bound! 39。The employee ? doesn39。 ? PROCEDURE update_sal( ? p_empno NUMBER, p_sal NUMBER)。 ? 包體中包含了在包頭中的過程和函數(shù)的實(shí)現(xiàn)代碼。)。 ? WHEN TOO_MANY_ROWS THEN ? (39。 ? ? Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 33 ? PROCEDURE show_empinfo(p_ename %TYPE) ? AS ? v_emp emp%ROWTYPE。 ? BEGIN ? SELECT * INTO v_emp FROM emp ? WHERE empno=p_empno。 BEGIN v_deptno:=x。 END return_avgsal。 ? 使用局部子程序時(shí)需要注意: ? 局部子程序只在當(dāng)前語(yǔ)句塊內(nèi)有效; ? 局部子程序必須在 PL/SQL塊聲明部分的最后進(jìn)行定義; ? 局部子程序必須在使用之前聲明,如果是子程序間相互引用,則需要采用預(yù)先聲明; ? 局部子程序可以重載。 ? END。 ? (v_dname||39。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 21 ( 2)函數(shù)的調(diào)用 ? 在 SQL語(yǔ)句中調(diào)用函數(shù) ? 在 PL/SQL中調(diào)用函數(shù) ? 注意 ? 函數(shù)只能作為表達(dá)式的一部分被調(diào)用。 ? END return_maxsal。也可以有多個(gè) RETURN語(yǔ)句,但最終只有一個(gè) RETURN語(yǔ)句被執(zhí)行。 ? END。 ? END; ? 注意 ? 在 PL/SQL程序中,存儲(chǔ)過程可以作為一個(gè)獨(dú)立的表達(dá)式被調(diào)用。但是,如果希望返回多個(gè)值,可以使用 OUT或 IN OUT模式參數(shù)來(lái)實(shí)現(xiàn)。 39。 ? CREATE OR REPLACE PROCEDURE show_emp( ? p_deptno %TYPE) ? AS ? v_sal %TYPE。 ? IN OUT表示當(dāng)過程被調(diào)用時(shí),實(shí)參值被傳遞給形參;在過程內(nèi),形參起已初始化的 PL/SQL變量的作用,可讀可寫;當(dāng)子程序調(diào)用結(jié)束返回調(diào)用環(huán)境時(shí),形參值被賦給實(shí)參。IN模式參數(shù)可以是常量或表達(dá)式。 ? 參數(shù)默認(rèn)值 ? 可以為參數(shù)設(shè)置默認(rèn)值,這樣存儲(chǔ)過程被調(diào)用時(shí)如果沒有給該參數(shù)傳遞值,則采用默認(rèn)值。average salary is:39。)。)。 ? (v_avgsal||39。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 15 ?函數(shù)的創(chuàng)建 ?函數(shù)的調(diào)用 ?函數(shù)的管理 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 16 ( 1)函數(shù)的創(chuàng)建 ? 基本語(yǔ)法為 ? CREATE [OR REPLACE] FUNCTION function_name ? (parameter1_name [mode] datatype ? [DEFAULT|:=value] ? [, parameter2_name [mode] datatype ? [DEFAULT|:=value],… ]) ? RETURN return_datatype ? AS|IS ? /*Declarative section is here */ ? BEGIN ? /*Executable section is here*/ ? EXCEPTION ? /*Exception section is here*/ ? END [function_name]。 ? EXCEPTION ? WHEN NO_DATA_FOUND THEN ? (39。 ? SELECT count(*),avg(sal) INTO p_num,p_avg ? FROM emp WHERE deptno=p_deptno。 ? v_dname %TYPE。 39。 ? 刪除函數(shù) ? DROP FUNCTION ? DROP FUNCTION ret_maxsal。 FUNCTION return_avgsal(p_deptno %TYPE) RETURN %TYPE AS v_sal %TYPE。 END IF。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 31 ?在一個(gè) PL/SQL塊中重載兩個(gè)過程,一個(gè)以員工號(hào)為參數(shù),輸出該員工信息;另一個(gè)以員工名為參數(shù),輸出員工信息。There is not such an ? employee!39。 ? EXCEPTION ? WHEN NO_DATA_FOUND THEN ? (39。 ? show_empinfo(7934)。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 35 包 ?包概述 ?包的創(chuàng)建 ?包的調(diào)用 ?包重載 ?包的初始化 ?包的管理 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 36 包概述 ? 包是包含一個(gè)或多個(gè)子程序單元(過程、函數(shù)等)的容器。 ? CREATE OR REPLACE PACKAGE pkg_emp ? AS ? minsal NUMBER。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 44 ? CREATE OR REPLACE PACKAGE BODY pkg_emp ? AS ? PROCEDURE update_sal(p_empno NUMBER, p_sal NUMBER) ? AS ? BEGIN ? SELECT min(sal), max(sal) INTO minsal,maxsal FROM emp。 ? ELSE ? RAISE e_beyondbound。 ? ELSE ? RAISE e_beyondbound。 ? 在包體中定義而沒有在包頭中聲明的元素是私有的,只能在包體中引用 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 47 ? 調(diào)用軟件包 pkg_emp中的過程 update_sal,修改7844員工工資為 3000。 ? PROCEDURE overloadme(parameter1 IN NUMBER)。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 49 ?在一個(gè)包中重載兩個(gè)過程,分別以部門號(hào)和部門名稱為參數(shù),查詢相應(yīng)部門員工名、員工號(hào)信息。 ? END show_emp。 ? END pkg_overload。 ? PROCEDURE update_sal( ? p_empno NUMBER, p_sal NUMBER)。)。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 56 ? PROCEDURE add_employee(p_empno NUMBER,p_sal NUMBER) ? AS ? BEGIN ? IF p_sal BETWEEN minsal AND maxsal THEN ? INSERT INTO emp(empno,sal) VALUES(p_empno,p_sal)。 ? END pkg_emp。 ? 刪除包 ? DROP PACKAGE (包規(guī)范和包體) ? DROP PACKAGE BODY (包體) ? DROP PACKAGE BODY pkg_emp。 ? 系統(tǒng)觸發(fā)器 ? 建立在系統(tǒng)或模式上的觸發(fā)器,響應(yīng)系統(tǒng)事件和 DDL( CREATE, ALTER, DROP)操作。如果指定為 FOR EACH ROW,即為行級(jí)觸發(fā)器,則觸發(fā)事件每作用于一個(gè)記錄,觸發(fā)器就會(huì)執(zhí)行一次。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 70 ? 創(chuàng)建一個(gè)觸發(fā)器,禁止在休息日改變雇員信息 ? CREATE OR REPLACE TRIGGER trg_emp_weekend ? BEFORE INSERT OR UPDATE OR DELETE ON emp ? BEGIN ? IF TO_CHAR(SYSDATE, 39。) ? THEN ? raise_application_error(20230, 39。 謂詞 行為 INSERTING 如果觸發(fā)語(yǔ)句是 INSERT,則為 TRUE; 否則為 FALSE UPDATING 如果觸發(fā)語(yǔ)句是 UPDATE,則為 TRUE; 否則為 FALSE DELETING 如果觸發(fā)語(yǔ)句是 DELETE,則為 TRUE; 否則為 FALSE Oracle10g 數(shù)據(jù)庫(kù)基礎(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ù)。 39。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 75 ? 標(biāo)識(shí)符 ? :old和 :new作為 triggering_table%ROWTYPE類型的兩個(gè)變量 ? 在不同觸發(fā)事件中, :old和 :new的意義不同 觸發(fā)事件 :old :new INSERT 未定義,所有字段都為NULL 當(dāng)語(yǔ)句完成時(shí),被插入的記錄 UPDATE 更新前原始記錄 當(dāng)語(yǔ)句完成時(shí),更新后的記錄 DELETE 記錄被刪除前的原始值 未定義,所有字段都為 NULL Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 76 ? 引用方式 : : : (執(zhí)行部分) 和 (WHEN條件中 ) ? 注意事項(xiàng): ? 是偽記錄,不能作為整個(gè)記錄進(jìn)行賦值或引用 ? 不能傳遞給帶 triggering_table%ROWTYPE參數(shù)的過程和函數(shù) ? 如果觸發(fā)器是建立在嵌套表上, 。 39。 ? 例如,修改員工工資時(shí),保證修改后的工資高于修改前的工資。 ? CREATE OR REPLACE VIEW empdept ? AS ? SELECT empno,ename,sal,dname ? FROM emp,dept WHERE = ? WITH CHECK OPTION。 ? INSERT INTO emp(empno,ename,sal,deptno) ? VALUES(:,:,v_deptno,:)。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 90 ? 將每個(gè)用戶的登錄信息寫入 temp_table表中。 ? END log_creations。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 97 ? CREATE OR REPLACE PACKAGE mutate_pkg ? AS ? v_deptno NUMBER(2)。|| ? )。 ? 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。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程 101 ? 激活或禁用觸發(fā)器 ? 可以激活或禁用某個(gè)觸發(fā)器。 Oracle10g 數(shù)據(jù)庫(kù)基礎(chǔ)教程
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1