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

正文內(nèi)容

oracle第15章plsql程序設(shè)計(jì)-wenkub

2023-03-05 11:03:25 本頁面
 

【正文】 個(gè) RETURN語句被執(zhí)行。 ? 刪除存儲(chǔ)過程 ? DROP PROCEDURE ? DROP PROCEDURE show_emp。 ? END。 ? return_deptinfo(10,v_avgsal,v_count)。 ? END; ? 注意 ? 在 PL/SQL程序中,存儲(chǔ)過程可以作為一個(gè)獨(dú)立的表達(dá)式被調(diào)用。The department don’’t exists!39。但是,如果希望返回多個(gè)值,可以使用 OUT或 IN OUT模式參數(shù)來實(shí)現(xiàn)。The department doesn’’t exists!39。 39。||39。 ? CREATE OR REPLACE PROCEDURE show_emp( ? p_deptno %TYPE) ? AS ? v_sal %TYPE。 IN參數(shù)為引用傳遞,即實(shí)參的指針被傳遞給形參;OUT, IN OUT參數(shù)為值傳遞,即實(shí)參的值被復(fù)制給形參。 ? IN OUT表示當(dāng)過程被調(diào)用時(shí),實(shí)參值被傳遞給形參;在過程內(nèi),形參起已初始化的 PL/SQL變量的作用,可讀可寫;當(dāng)子程序調(diào)用結(jié)束返回調(diào)用環(huán)境時(shí),形參值被賦給實(shí)參。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 7 ? 參數(shù)說明 ? 參數(shù)的模式 ? IN(默認(rèn)參數(shù)模式)表示當(dāng)過程被調(diào)用時(shí),實(shí)參值被傳遞給形參;在過程內(nèi),形參起常量作用,只能讀該參數(shù),而不能修改該參數(shù);當(dāng)子程序調(diào)用結(jié)束返回調(diào)用環(huán)境時(shí),實(shí)參沒有被改變。IN模式參數(shù)可以是常量或表達(dá)式。 IN OUT模式參數(shù)只能是變量,不能是常量或表達(dá)式。 ? 參數(shù)默認(rèn)值 ? 可以為參數(shù)設(shè)置默認(rèn)值,這樣存儲(chǔ)過程被調(diào)用時(shí)如果沒有給該參數(shù)傳遞值,則采用默認(rèn)值。 ? BEGIN ? SELECT avg(sal) INTO v_sal FROM emp WHERE deptno=p_deptno。average salary is:39。|| ? )。)。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 11 ? 創(chuàng)建一個(gè)存儲(chǔ)過程,以部門號(hào)為參數(shù),返回該部門的人數(shù)和最高工資。)。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 13 ? DECLARE ? v_avgsal %TYPE。 ? (v_avgsal||39。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 14 ( 3)存儲(chǔ)過程的管理 ? 修改存儲(chǔ)過程 ? CREATE OR REPLACE PROCEDURE procedure_name ? 查看存儲(chǔ)過程及其源代碼 ? 查詢數(shù)據(jù)字典視圖 USER_SOURCE ? SELECT name,text FROM user_source WHERE type=39。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 15 ?函數(shù)的創(chuàng)建 ?函數(shù)的調(diào)用 ?函數(shù)的管理 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 16 ( 1)函數(shù)的創(chuàng)建 ? 基本語法為 ? 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]。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 18 ? 創(chuàng)建一個(gè)以部門號(hào)為參數(shù),返回該部門最高工資的函數(shù)。 ? EXCEPTION ? WHEN NO_DATA_FOUND THEN ? (39。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 19 ? 如果需要函數(shù)返回多個(gè)值,可以使用 OUT或 IN OUT模式參數(shù)。 ? SELECT count(*),avg(sal) INTO p_num,p_avg ? FROM emp WHERE deptno=p_deptno。 ? 示例 ? 通過 return_maxsal函數(shù)的調(diào)用,輸出各個(gè)部門的最高工資;通過 ret_deptinfo函數(shù)調(diào)用,輸出各個(gè)部門名、部門人數(shù)及平均工資。 ? v_dname %TYPE。 39。 39。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 23 ? 函數(shù)可以在 SQL語句的以下部分調(diào)用: ? SELECT語句的目標(biāo)列; ? WHERE和 HAVING子句; ? CONNECT BY, START WITH, ORDER BY,GROUP BY子句; ? INSERT語句的 VALUES子句中; ? UPDATE語句的 SET子句中。 ? 刪除函數(shù) ? DROP FUNCTION ? DROP FUNCTION ret_maxsal。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 27 ?在一個(gè)塊內(nèi)部定義一個(gè)函數(shù)和一個(gè)過程。 FUNCTION return_avgsal(p_deptno %TYPE) RETURN %TYPE AS v_sal %TYPE。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 29 PROCEDURE show_emp(p_deptno %TYPE) AS CURSOR c_emp IS SELECT * FROM emp WHERE deptno=p_deptno。 END IF。 v_avgsal:=return_avgsal(v_deptno)。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 31 ?在一個(gè) PL/SQL塊中重載兩個(gè)過程,一個(gè)以員工號(hào)為參數(shù),輸出該員工信息;另一個(gè)以員工名為參數(shù),輸出員工信息。 ? (||39。There is not such an ? employee!39。 ? BEGIN ? SELECT * INTO v_emp FROM emp ? WHERE ename=p_ename。 ? EXCEPTION ? WHEN NO_DATA_FOUND THEN ? (39。There are more than one ? employee!39。 ? show_empinfo(7934)。 ? show_empinfo(39。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 35 包 ?包概述 ?包的創(chuàng)建 ?包的調(diào)用 ?包重載 ?包的初始化 ?包的管理 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 36 包概述 ? 包是包含一個(gè)或多個(gè)子程序單元(過程、函數(shù)等)的容器。包體中還可以包括在規(guī)范中沒有聲明的變量、游標(biāo)、類型、異常、過程和函數(shù),但是它們是私有元素,只能由同一包體中其他過程和函數(shù)使用。 ? CREATE OR REPLACE PACKAGE pkg_emp ? AS ? minsal NUMBER。 ? PROCEDURE add_employee( ? p_empno NUMBER,p_sal NUMBER)。 Oracle10g 數(shù)據(jù)庫基礎(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。39。 ? ELSE ? RAISE e_beyondbound。)。 ? ELSE ? RAISE e_beyondbound。)。 ? 在包體中定義而沒有在包頭中聲明的元素是私有的,只能在包體中引用 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 47 ? 調(diào)用軟件包 pkg_emp中的過程 update_sal,修改7844員工工資為 3000。 ? END。 ? PROCEDURE overloadme(parameter1 IN NUMBER)。 ? FUNCTION overloadme RETURN NUMBER。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 49 ?在一個(gè)包中重載兩個(gè)過程,分別以部門號(hào)和部門名稱為參數(shù),查詢相應(yīng)部門員工名、員工號(hào)信息。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 51 ? CREATE OR REPLACE PACKAGE BODY pkg_overload ? AS ? PROCEDURE show_emp(p_deptno NUMBER) ? AS ? BEGIN ? FOR v_emp IN (SELECT * FROM emp WHERE deptno=p_deptno) LOOP ? (||39。 ? END show_emp。 39。 ? END pkg_overload。 ? 示例 ?在 pkg_emp包中,在包初始化時(shí)給 minsal和 maxsal兩個(gè)變量賦值,在子程序中直接引用這兩個(gè)變量。 ? PROCEDURE update_sal( ? p_empno NUMBER, p_sal NUMBER)。 ? IF SQL%NOTFOUND THEN ? RAISE_APPLICATION_ERROR(20230,39。)。 ? EXCEPTION ? WHEN e_beyondbound THEN ? (39。 Oracle10g 數(shù)據(jù)庫基礎(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)。The salary is beyond bound!39。 ? END pkg_emp。PACKAGE BODY39。 ? 刪除包 ? DROP PACKAGE (包規(guī)范和包體) ? DROP PACKAGE BODY (包體) ? DROP PACKAGE BODY pkg_emp。 ? 觸發(fā)器不接受任何參數(shù)。 ? 系統(tǒng)觸發(fā)器 ? 建立在系統(tǒng)或模式上的觸發(fā)器,響應(yīng)系統(tǒng)事件和 DDL( CREATE, ALTER, DROP)操作。 ? 觸發(fā)時(shí)間:用于指定觸發(fā)器在觸發(fā)事件完成之前還是之后執(zhí)行。如果指定為 FOR EACH ROW,即為行級(jí)觸發(fā)器,則觸發(fā)事件每作用于一個(gè)記錄,觸發(fā)器就會(huì)執(zhí)行一次。 ?對(duì)于受觸發(fā)事件影響的每一個(gè)記錄: ?如果存在,則執(zhí)行行級(jí)前觸發(fā)器; ?執(zhí)行當(dāng)前記錄的 DML操作(觸發(fā)事件); ?如果存在,則執(zhí)行行級(jí)后觸發(fā)器。 Oracle10g 數(shù)據(jù)庫基礎(chǔ)教程 70 ? 創(chuàng)建一個(gè)觸發(fā)器,禁止在休息日改變
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1