程式包的使用

2022-09-02 14:15:09 字數 3176 閱讀 3023

一、程式包簡使用

--建立乙個程式包規範,以scott.emp表為資料

1

--程式包

2create

orreplace

package emp_package3is

4 minsal emp.sal%type;--

最小工資

5 maxsal emp.sal%type;--

最大工資6--

新增員工資訊

7procedure addemp(v_no number,v_name nvarchar2,v_sal number,v_deptno number);8

--修改員工資訊,根據編號

9procedure updatesal(v_no number,v_sal number

);10

--修改員工資訊,根據姓名

11procedure updatesal(v_name nvarchar2,v_sal number

);12

--獲得員工的工資,根據編號

13function getsal(v_no number) return

number;14

end;

--建立包的主體,以scott.emp表為資料

1

--包主體

2create

orreplace

package body emp_package3is

4--新增員工資訊

5procedure addemp(v_no number,v_name nvarchar2,v_sal number,v_deptno number)6

is7begin

8insert

into emp(empno,ename,sal,deptno) values

(v_no,v_name,v_sal,v_deptno);

9end;10

--修改員工資訊,根據編號

11procedure updatesal(v_no number,v_sal number)12

is13

begin

14update emp set sal = v_sal where empno =

v_no;

15commit;16

exception

17when others then

18 dbms_output.put_line('

更新薪資時出現異常');

19rollback;20

end;

21--

修改員工資訊,根據姓名

22procedure updatesal(v_name nvarchar2,v_sal number)23

is24

begin

25update emp set sal = v_sal where ename =

v_name;

26commit;27

exception

28when others then

29 dbms_output.put_line('

更新薪資時出現異常');

30rollback;31

end;

32--

獲得員工的工資,根據編號

33function getsal(v_no number) return

number

34is

35 v_sal emp.sal%

type;

36begin

37select sal into v_sal from emp where empno =

v_no;

38return

v_sal;

39end;40

begin

41select

max(sal) into maxsal from

emp;

42select

min(sal) into minsal from

emp;

43end;

以下是測試**:

1

--程式包

2declare

3 v_minsal emp.sal%

type;

4 v_sal emp.sal%

type;

5begin

6 v_minsal :=

emp_package.minsal;

7dbms_output.put_line(v_minsal);

8 emp_package.updatesal('

blake

',600.00

);9 v_sal :=emp_package.getsal(7698

);10

dbms_output.put_line(v_sal);

11 emp_package.addemp(7777,'

abc',7000,10

);12

end;

二、在程式包中使用靜態游標

1

--定義包規範

2create

orreplace

package pkg_emp 3is

4cursor getempinfo(empno varchar2) return emp%

rowtype;

5end;6

--定義包主體

7create

orreplace

package body pkg_emp8is

9cursor getempinfo(empno varchar2) return emp%rowtype is

10select

*from emp where empno =

empno;

11end

; 12

--測試**

13begin

14for v_r in pkg_emp.getempinfo(7369

) loop

15dbms_output.put_line(v_r.ename);

16end

loop;

17end;

三、在程式包中使用動態游標

未完待續……

adb 工具關閉程式包,開啟程式包,查詢程式包

1.關閉程式包 關閉的是google搜尋的包 命令是 adb shell am force stop com.android.quicksearchbox 2.開啟程式包 開啟的是google搜尋的包 命令是 adb shell am start w n com.android.quicksearc...

程式包例子

create or replace package test package is procedure pro test01 num arg in number function fun test02 return number end test package create or replace ...

程式包例子

儲存過程 procedure create procedure 過程名 引數列表 as is begin exception end or replace 如果存在該過程,則重構該過程 過程引數的三種模式 in 用於接受呼叫程式的值,預設的引數模式 out 用於向呼叫程式返回值 in out用於接受...