PLSQL基礎(四)儲存過程與函式

2021-08-25 21:20:38 字數 1236 閱讀 7953

儲存過程

create or replace procedure 過程名 (

... --引數定義部分 )

is... --區域性變數定義部分

begin

... --可執行部分

exception

... --異常處理部分

end 過程名;

在end後可以加上儲存過程名,也可以不加。如果要在end後加過程名,則必須要和前面的儲存過程名相同。

在定義乙個儲存過程引數時,不能指定char型別和varchar2型別形參的長度,也不能指定number形參的精度和標度,這些約束有實參來傳遞。

函式:儲存過程和儲存函式有不同之處,儲存過程只能作為乙個plsql語句呼叫,而函式作為表示式的一部分呼叫。並且他們的定義部分,可執行部分和異常處理部分是不同的

create or replace function 函式名 (

... --引數 )

return return_datatype --函式返回值型別 is

... --區域性變數定義

v_rreturnvalue return_datatype;

begin

... --函式處理部分

return v_rreturnvalue;

exception

...end 函式名;

函式的返回值

在函式內,是通過return語句來返回值的。

在函式體中可以有多條return語句,但是只能有一條被執行,在函式結束的時候,如果沒有執行return語句會產生錯誤。

函式與儲存過程的相同的

都可以通過out模式的引數返回乙個或多個值。

**都有定義部分,可執行部分和異常處理部分

都可以使用預設值

都可以用位置表示法和命名表示法。

在使用儲存函式與儲存過程時,一般情況下,如果只有乙個返回值,則使用函式;如果有多個返回值則使用儲存過程,儘管函式的形參可以是out模式,當時一般不這樣使用。

刪除過程和函式

dorp procedure 儲存過程名;

drop function 函式名;

庫存子程式和區域性子程式

庫存子程式,是由create命令建立,並可以在其他plsql塊中呼叫.他們在建立子程式時要進行編譯,並將編譯後的**儲存在資料庫中,當子程式被呼叫時,編譯後的**從資料看中讀出並執行。

乙個子程式也可以在塊的定義部分建立,這樣的子程式被叫作區域性子程式

區域性子程式只能在定義部分的最後被建立

PL SQL語言 儲存過程 儲存函式

給變數賦值用 賦值 連線兩個字串用 連線,用加號是不好使的!str1 str2 str3 if 條件 then 業務邏輯 elsif 條件 then 業務邏輯 end if 其中的elsif需注意,並不是elseif。cursor c1 is select from emp where deptno...

PL SQL儲存過程

or replace 建立或替換,如果存在就替換,不存在就建立create or replace procedure piscursor cisselect from dept2 for update beginfor row record in c loopif row record.deptno...

pl sql 儲存過程

在這段時間的開發中資料庫用的是oracle以前用的都是mssql它們的儲存過程的寫法還有一點不一樣,所以花了一天的時間看了看!以下是我做的乙個小例子!create table mytesttable id number,name varchar2 10 insert into mytesttable...