Oracle資料庫 包

2022-02-02 03:25:47 字數 1742 閱讀 1368

--根據員工號或員工姓名獲取員工的資訊

--根據員工號或員工姓名刪除員工的資訊

--建立包規範

create or replace package overload_pkg

isfunction get_info(eno number) return emp%rowtype;

function get_info(name varchar2) return emp%rowtype;

procedure del_emp(eno number);

procedure del_emp(name varchar2);

end;

--呼叫

--根據員工號查詢員工資訊

declare

emp_record emp%rowtype;

e_no_emp exception;

pragma exception_init(e_no_emp,-20020);

begin

emp_record:= overload_pkg.get_info(&no);

dbms_output.put_line('員工號:'||emp_record.empno||'姓名:'||emp_record.ename||'工資:'||emp_record.sal);

exception

when e_no_emp then

dbms_output.put_line(sqlerrm);

end;

--根據員工姓名查詢員工資訊

declare

emp_record emp%rowtype;

e_no_emp exception;

pragma exception_init(e_no_emp,-20020);

begin

emp_record:= overload_pkg.get_info('&name');

dbms_output.put_line('員工號:'||emp_record.empno||'姓名:'||emp_record.ename||'工資:'||emp_record.sal);

exception

when e_no_emp then

dbms_output.put_line(sqlerrm);

end;

--根據員工號刪除員工資訊

declare

e_no_emp exception;

pragma exception_init(e_no_emp, -20020);

begin

overload_pkg.del_emp(&no);

commit;

exception

when e_no_emp then

dbms_output.put_line(sqlerrm);

rollback;

end;

select * from emp;

--根據員工的姓名刪除員工的資訊

declare

e_no_emp exception;

pragma exception_init(e_no_emp, -20020);

begin

overload_pkg.del_emp('&name');

commit;

exception

when e_no_emp then

dbms_output.put_line(sqlerrm);

rollback;

end;

Oracle資料庫的包概念

1.包 package 是oracle資料庫的物件。利用包可以將一組邏輯相關的pl sql型別,資料項和子程式組織在一起。乙個包可以包含某些子程式,型別定義和變數的說明等。2.當乙個包建立 編譯 後,它就被儲存在資料庫中。包如同乙個子程式庫一樣,使用者可以呼叫包裡的子程式,還可使用包中的變數,型別和...

Oracle資料庫學習14之包

包是將一群相關聯的pl sql型別 專案 和子程式等有計畫的組織起來封裝在一起。包通常包括兩個部分 規範和主題。有時包的主體不是必要的。包的規範也叫包頭,是我們和應用程式的介面部分,通常包含 型別 記錄 變數 常量 異常 游標 子程式等的宣告。即 任何可以在塊中宣告的語句都可以在包中使用,這些宣告對...

oracle資料庫賦權 Oracle資料庫許可權

oracle資料庫許可權基本認識 一 oracle許可權 oracle系統提供三種許可權 object 物件級 system 系統級 role 角色級。許可權分類 1 系統許可權 系統規定使用者使用資料庫的許可權。系統許可權是對使用者而言 2 實體許可權 某種許可權使用者對其它使用者的表或檢視的訪問...