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 /