一女同事問我oracle 存儲過程的問題,後我問及package、package body 關係以及理解,開始說可以說出個一二,但是也還是有迷糊的地方,後歸納理清了下。
簡單理解就是:
package 類似聲明(接口)
package body,類似實現
package body,類似實現
例:
create or replace package test_package is
--purpose:package include function interface
function proc_20101230(aNum in Integer,bNum in Integer) return integer;
end test_package;
--purpose:package include function interface
function proc_20101230(aNum in Integer,bNum in Integer) return integer;
end test_package;
CREATE OR REPLACE PACKAGE BODY test_package IS
--implement the interface in the package
FUNCTION proc_20101230(
aNum in Integer ,
bNum in Integer
)
return integer
as
begin
return aNum + bNum;
END;
END test_package;
--implement the interface in the package
FUNCTION proc_20101230(
aNum in Integer ,
bNum in Integer
)
return integer
as
begin
return aNum + bNum;
END;
END test_package;
在PL/SQL中,FUNCTION 和 PROCEDURE都可以通過TEST來調試。
此外FUNCTION可以在SQL 窗口中,類似
select proc_20100907_03(1,2) from dual; 調用
PROCEDURE 可以在命令窗口中,類似
SQL> exec test_procedure;
PL/SQL procedure successfully completed 調用
PL/SQL procedure successfully completed 調用