【正文】
第 7章 過(guò)程、函數(shù)和程序包 演講完畢,謝謝觀看! 。函數(shù)利用傳入?yún)?shù)傳入員工的工作職位,返回該職位中的員工數(shù)量。 第 7章 過(guò)程、函數(shù)和程序包 2.編寫(xiě)一個(gè)程序包,此程序包有一個(gè)過(guò)程和一個(gè)函數(shù)。 6 end。該職員的就職日期是 :39。 3 begin 4 h_date:=(7369)。 SQL set serveroutput on。 SQL execute (7369)。 25 / 第 7章 過(guò)程、函數(shù)和程序包 程序包主體已創(chuàng)建。 23 end fun_date。職員編號(hào)未找到 !39。 19 return h_date。 13 function fun_date(emp_no number) 14 return date 15 is 16 h_date date。)。 9 EXCEPTION 10 when NO_DATA_FOUND then 11 (39。該職員的薪水是 :39。 6 begin 7 select sal into salary from emp where empno=emp_no。 6 / 程序包已創(chuàng)建。 4 function fun_date(emp_no number) return date。編寫(xiě)調(diào)用程序執(zhí)行 (使用 SCOTT用戶(hù)的 emp表 )。過(guò)程根據(jù)職員編號(hào)打印薪水。 2.掌握?qǐng)?zhí)行程序包中過(guò)程和函數(shù)的方法。在調(diào)用程序中根據(jù)結(jié)果顯示正確的消息 (使用SCOTT用戶(hù)的 DEPT表 )。 第 7章 過(guò)程、函數(shù)和程序包 2.編寫(xiě)一個(gè)函數(shù),要求根據(jù)用戶(hù)輸入的部門(mén)號(hào)查詢(xún)DEPT表。 6 end。該學(xué)生的成績(jī)是 :39。 3 begin 4 score_avg :=fun_score(1)。 SQL set serveroutput on。 15 end 。學(xué)號(hào)未找到 !39。 11 return score_avg。 8 begin 9 select oracle,java,csharp into s1,s2,s3 from score where stuID=student_no。 6 s3 float(10)。 SQL create or replace function fun_score(student_no number) 2 return float 3 as 4 s1 float(10)。 2.掌握調(diào)用函數(shù)的方法。 雇員的姓名是: SMITH 雇員的職位是: CLERK PL/SQL 過(guò)程已成功完成。 SQL set serveroutput on。 12 end pro_emp。雇員編號(hào)未找到 !39。||empJob)。 8 (39。雇員的姓名是 :39。 5 begin 6 select ename,job into empName,empJob from emp where empno=emp_no。 第 7章 過(guò)程、函數(shù)和程序包 SQL create or replace procedure pro_emp(emp_no number) 2 as 3 empName varchar2(20)。 實(shí)驗(yàn)內(nèi)容: 編寫(xiě)一個(gè)過(guò)程,要求根據(jù)用戶(hù)輸入的員工號(hào) (emp_no)查詢(xún) EMP表,返回員工的姓名和工作職位 (empName和 empJob)。 第 7章 過(guò)程、函數(shù)和程序包 上機(jī)實(shí)驗(yàn)七 實(shí)驗(yàn) 1 過(guò)程 目的和要求: 1.掌握編寫(xiě)過(guò)程的方法。 2.編寫(xiě)函數(shù)接受學(xué)生的學(xué)號(hào),并計(jì)算該學(xué)生 3門(mén)課程的總分。函數(shù)根據(jù)職員編號(hào)返回職員的薪水。 A. 存儲(chǔ)過(guò)程 B. 存儲(chǔ)函數(shù) C. 游標(biāo) D. 表 第 7章 過(guò)程、函數(shù)和程序包 6.下列有關(guān)包的使用,說(shuō)法錯(cuò)誤的是 ( )。 A. 常量 B. 表達(dá)式 C. 變量 D. 都可以 第 7章 過(guò)程、函數(shù)和程序包 4.下列有關(guān)存儲(chǔ)過(guò)程的特點(diǎn),說(shuō)法錯(cuò)誤的是 ( )。 A. 函數(shù) B. 過(guò)程 C. 程序包 D. 游標(biāo) 2.子程序的 ( )模式參數(shù)可以在調(diào)用子程序時(shí)指定一個(gè)常量。它們封裝了數(shù)據(jù)類(lèi)型定義、變量說(shuō)明、游標(biāo)、異常等,方便了用戶(hù)管理操縱數(shù)據(jù)庫(kù)數(shù)據(jù)。 SQL DESC employee_pkg。 8 end。 6 p1:=p2。 LINE TEXT 1 procedure swap(p1 IN OUT number,p2 IN OUT number) 2 as 3 temp number。 OBJECT_NAME OBJECT_TYPE EMPLOYEE_PKG PACKAGE EMPLOYEE_PKG PACKAGE BODY QUERYEMPNAME PROCEDURE QUERYEMPSAL PROCEDURE SWAP PROCEDURE 第 7章 過(guò)程、函數(shù)和程序包 【 例 】 要獲取存儲(chǔ)子程序的文本,可以查詢(xún)USER_SOURCE。PACKAGE BODY39。PACKAGE39。FUNCTION39。PROCEDURE39。 第 7章 過(guò)程、函數(shù)和程序包 【 例 】 獲取程序包中子程序和程序包的信息。通過(guò)查詢(xún)數(shù)據(jù)字典可以獲得它們的信息。這樣可以減少不必要的重新編譯。 (5) 更好的執(zhí)行效能??梢灾付ü行畔⒑退接行畔?。同樣可以在程序中引用包,等整個(gè)應(yīng)用程序完成后再來(lái)定義具體的包體。 (3) 簡(jiǎn)單的應(yīng)用程序設(shè)計(jì)。 (2) 可重用性。包可以使邏輯上相關(guān)聯(lián)的類(lèi)型、項(xiàng)目和子程序等封裝進(jìn)一個(gè)命名 PL/SQL塊中。 PL/SQL 過(guò)程已成功完成。 第 7章 過(guò)程、函數(shù)和程序包 (5) 調(diào)用程序包中的過(guò)程 select_student顯示數(shù)據(jù)。 8 end。f39。tonglei39。 3 begin 4 :=1009。 第 7章 過(guò)程、函數(shù)和程序包 (4) 調(diào)用程序包插入一行數(shù)據(jù)。 47 end student_package。 45 return icount。 41 function getStudentCount return number is 42 icount int。 37 procedure select_student(stucur in out student_cur) is 38 begin 39 open stucur for select * from student。 35 end if。delete data not exist39。 32 mit。 27 procedure delete_student(sno %type) is 28 icount int。 25 end if。update data not exist!39。 第 7章 過(guò)程、函數(shù)和程序包 22 mit。 18 begin 19 select count(*) into icount from student where stuid=。 15 end insert_student。insert data is already exsist39。 11 end if。 8 else 9 insert into student values(,)。insert data is already exsist39。 4 begin 5 select count(*) into icount from student where stuid=。 第 7章 過(guò)程、函數(shù)和程序包 (3) 定義主體。 8 end student_package。 6 procedure select_student(stucur in out student_cur)。 4 procedure update_student(stu student%rowtype)。 SQL create or replace package student_package is 2 type student_cur is ref cursor return student%rowtype。 表已創(chuàng)建。詳細(xì)過(guò)程如下: (1) 首先創(chuàng)建