Oracle---作業5過程與函數


Homework

1. 創建一個過程,能向dept表中添加一個新記錄。(in參數)

2. 從scott.emp表中查詢給定職工(提示:使用&來輸入員工編號)的職工姓名和工資。(要求:利用out模式的參數將值傳給調用者。)

3. 創建一個過程,在執行調用過程時,可隨機輸入emp表中某個雇員的姓名,根據雇員的姓名,返回該雇員的薪水值,並輸出。(out參數)。

4. 編寫過程,實現交換兩個變量的值的功能。並輸出交換前和交換后的兩個值。(in out參數)

5. 創建存儲過程,根據員工編號刪除scott.emp表中的相關記錄。(提示:由調用語句提供的員工編號來刪除記錄,要求員工編號可隨機輸入。)

6. 創建存儲過程:輸入部門編號,輸出scott.emp表中該部門所有職工的員工編號、姓名、工作崗位。(提示:查詢結果是多行,需使用游標,需把游標的定義像變量那樣在過程或函數里定義,所以游標的定義要放在如下位置:

 

7. 編寫一個過程,指定一個員工編號與一個工資增加的百分比,使emp表中將該員工的工資(sal)增加輸入的百分比。

8. 創建函數,從scott.emp表中查詢指定員工編號的職工的工資。

9. 創建函數,返回scott.emp表中指定職工的工資和姓名。(提示:返回值是兩個,可用return返回一個,另一個用out參數帶回)

10. 創建函數,根據給定的部門編號(提示: 利用&)計算該部門所有職工的平均工資。

 

11. 創建函數,將scott.emp表中工資低於平均工資的職工工資加上200,並返回修改了工資的總人數。

 

12. 創建一個函數,僅有一個形參,它接收調用函數中傳遞過來的實參--部門號,函數的返回值為該部門的一整條記錄信息(注意:此處能夠接收一整條記錄的變量該怎么定義?)。要求在調用函數中輸出該部門的部門名稱與位置。

 1 create or replace function func(deptid in number)
 2     return scott.dept%rowtype is result scott.dept%rowtype;
 3 begin
 4     select * into result from scott.dept where deptno=deptid;
 5     return (result);
 6 end;
 7 /
 8 
 9 set serveroutput on;
10 declare
11     res scott.dept%rowtype;
12 begin
13     res := func(&deptid);
14     dbms_output.put_line(res.deptno || ' ' ||res.dname ||' '|| res.loc);
15 end;
16 /
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM