Oracle儲存過程和儲存函式

2022-08-10 13:12:18 字數 1539 閱讀 1382

參看

oracle儲存過程、 儲存函式

說明:儲存過程、儲存函式都是物件。包括表、檢視、

索引、序列、同義詞等也是物件。

概念:指儲存在資料庫中供所有使用者程式呼叫的子程式叫儲存

過程、儲存函式。

特點:完成特定功能的程式。

區別:儲存函式可以通過return子句返回乙個值。

建立和使用儲存過程

用create procedure命令建立儲存過程和儲存函式。

語法:create [or replace] procedure 過程名(引數列表)

as plsql子程式體;

說明:儲存過程只能建立或替換,不能修改。 其中,pl

sql子程式為說明的部分。

create [or replace] procedure 過程名(引數列表)

as ----宣告部分  相當於declare  不可以省略

eg:

create

[or replace

]procedure

sayhello( )

asbegin

dbms_output.put_line("helloworld");

end;

呼叫:

exec

sayhello( );

或begin

exec

sayhello( );

exec

sayhello( );

end;

帶引數的儲存過程之帶輸入引數;

eg:

--

建立乙個帶引數的儲存過程:

--目的:給指定的員工漲100塊工資,並且列印漲薪前和漲薪後的薪水

create

orreplace

procedure raisesalary(eno in

number)as

--定義乙個變數儲存漲薪前的薪水

psal emp.sal%

type;

begin

--得到員工漲薪前的薪水

select sal into

psal

from

empwhere empno=

eno;

--給該員工漲100

update

empset sal=sal+

100where empno=

eno;

--需不需要commit?

--注意:一般不在儲存過程或者儲存函式中commit和rollback; 但是其實可以

--這樣操作,它一般作為子程式來呼叫,在呼叫時候即可看出原因。

--列印

dbms_output.put_line("漲薪前:"||psal||"張新後:"||(psal+

100));

end;

呼叫:

begin

raisesalary(

7839

); raisesalary(

7639

);commit

;end;

oracle儲存過程和儲存函式(1)

第乙個儲存過程 create orreplace procedure sayhelloworld asbegin dbms output.put line hello world end 呼叫儲存過程 1.execute exec 2.在儲存過程中呼叫 begin sayhelloworld end...

Oracle儲存函式,儲存過程

一 oracle儲存函式 儲存的pl sql語法塊,完成特定的功能。1 語法 函式關鍵字 function 1 建立函式 create or replace function function name param1,param2 return is as local declarations de...

Oracle 儲存過程 函式

儲存過程 函式 子程式有名字 儲存在資料庫 同過名字呼叫 建立的時候被編譯 可以被其他有名或者無名的塊呼叫 語法create or replace procedure testp1 as 宣告 begin 可執行 dbms output.put line hello world end 使用 exe...