--函數和存儲過程都可以單獨定義,這個時候它們分別會出現在pl/sql--functions的文件夾和Procedures文件夾下面 --同時它們又可以
--函數和存儲過程都可以單獨定義,這個時候它們分別會出現在pl/sql
--functions的文件夾和Procedures文件夾下面
--同時它們又可以同時被定義在package里面
--而定義在一個package里面的函數或者存儲過程與單獨定義在functions文件夾下的函數以及定義在procedures文件夾下面的procedure即便是重名了也是不會相互影響的,因為它們的作用域是不一樣的,因為定義在package里面的函數或者procedure在被調用的時候需要加上包名才行,而且在包里面的函數又可以調用外部的函數或者是存儲過程。
--不過需要了解的而是包只是對于方法和函數的一個定義就像是java里面的接口一樣
--它只是定義了方法體和存儲過程體但是沒有實現,,實現需要在package body里面實現
--這主要也是為了一種規范
--因為創建存儲過程經常會出錯,建議看看出錯的常見情況:
create or replace function addDept(
f_deptno dept.deptno%type,
f_dname dept.dname%type,
f_loc dept.loc%type
)
return number
as
begin
insert into dept values(f_deptno,f_dname,f_loc);
if sql%found then
return 1;
else
return 0;
end if;
commit;
end;
--創建刪除部門函數
create or replace function deleteDept(
f_deptno dept.deptno%type
)
return number
as
begin
delete from dept where dept.deptno=f_deptno;
if sql%found then
return 1;
else
return 0;
end if;
end;
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com