儲存過程和儲存函式

2021-08-28 05:35:30 字數 2058 閱讀 3045

儲存過程(stored procedure)是一組為了完成特定功能的sql 語句集,經編譯後儲存在資料庫。中使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它

優點:

1.儲存過程只在創造時進行編譯,以後每次執行儲存過程都不需再重新編譯,而

一般sql 語句每執行一次就編譯一次,所以使用儲存過程可提高資料庫執行速

度。2.當對資料庫進行複雜操作時(如對多個表進行

update,insert,query,delete 時),可將此複雜操作用儲存過程封裝起來

與資料庫提供的事務處理結合一起使用。

3.儲存過程可以重複使用,可減少資料庫開發人員的工作量

4.安全性高,可設定只有某此使用者才具有對指定儲存過程的使用權

語法:create  [or replace] procedure   過程名(引數列表)asplsql子程式其中as表示是要申明的變數

例子:1.create or replace procedure  queryempinform (eno in number,

pename  out  varchar2,

psal  out  number,

pjob  out varchar2)

as

begin

select  ename , sal, empjob  into pename,psal,pjob from emp where empno=eno;

end

2.create or replace  procedure  raisesalary  (eno  in number)

as

-------定義乙個變數保持漲前的薪水

------%type就是emp .sal的資料型別,

函式為一命名的儲存程式,可以帶引數,並返回乙個計算值,函式和過程的結構類似,但

但必須有乙個return子句,用於返回函式值

create [or replace]  function 函式名(引數列表)

return 函式值型別

as

plsql子程式體

3.兩者區別

一般來說,儲存過程和儲存函式的區別在於儲存函式有乙個返回值,而儲存過程沒有返回值

4.原則:如果只有乙個返回值,用儲存函式,否則就用儲存過程

儲存過程和儲存函式

1 mysql 在操作子程式時,由於需要使用分號 所以要使用delimiter先重新定義分界符為 以下 包含的內容表示注釋 delimiter 使用delimiter 把定界符由 設定為 注意 delimiter 和 之間的空格。1 建立子程式 儲存過程和儲存函式的統稱 create procedu...

Oracle儲存過程和儲存函式

參看 oracle儲存過程 儲存函式 說明 儲存過程 儲存函式都是物件。包括表 檢視 索引 序列 同義詞等也是物件。概念 指儲存在資料庫中供所有使用者程式呼叫的子程式叫儲存 過程 儲存函式。特點 完成特定功能的程式。區別 儲存函式可以通過return子句返回乙個值。建立和使用儲存過程 用create...

MySQL儲存過程和儲存函式

儲存過程和儲存函式 mysql的儲存過程 stored procedure 和函式 stored function 統稱為stored routines。1.儲存過程和函式的區別 函式只能通過return語句返回單個值或者表物件。而儲存過程不允許執行return,但是通過out引數返回多個值。函式是...