pl sql儲存過程

2021-10-03 20:35:30 字數 2531 閱讀 8472

初識儲存過程

儲存過程(stored procedure)是在大型資料庫系統中,一組為了完成特定功能的sql 語句集,儲存在資料庫中,經過第一次編譯後呼叫不需要再次編譯,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫中的乙個重要物件。

包含一系列pl/sql語句的集合。

建立儲存格式

create [or replace] procedure procedure_name

(argument1 [mode1] datatype1,

argument2 [mode2] datatype2, …)

as [is]

宣告部分

begin

執行部分

exception

異常處理部分

end;

呼叫儲存過程格式

call proc_update_emp();

示例:create or replace procedure pro_stu_update

asbegin

update student set stu_name=『edit_name』 where stu_id=5;

end;

– 呼叫

call pro_stu_update();

in 示例

– 根據員工號,查詢員工工資

create or replace procedure

– in表示入參

pro_emp_selectarray(v_empid in employees.employee_id%type)

as v_sal employees.salary%type;

begin

select salary into v_sal from employees where employee_id=v_empid;

dbms_output.put_line(『salary:』 || v_sal);

end;

– call呼叫

call pro_emp_selectarray(198);

in/out 示例

– 根據員工號,查詢員工工資 帶out引數

create or replace procedure

– in表示入參,out表示出參

pro_emp_selectarray(v_empid in employees.employee_id%type,v_sal out employees.salary%type)

asbegin

select salary into v_sal from employees where employee_id=v_empid;

dbms_output.put_line(『salary:』 || v_sal);

end;

– pl/sql呼叫

declare

– 對應的引數型別和數量保持一致

v_empid employees.employee_id%type := 『&input_empid』;

v_sal employees.salary%type;

begin

pro_emp_selectarray(v_empid,v_sal);

exception

when no_data_found then

dbms_output.put_line(『找不到對應員工』);

end;

inout示例

create or replace procedure

– in/out 引數共用,必須保持引數型別相同

pro_emp_selectarray(v_param in out number)

asbegin

select manager_id into v_param from employees where employee_id=v_param;

dbms_output.put_line(『salary:』 || v_param);

end;

– pl/sql呼叫

declare

v_param number := 『&input_param』;

begin

pro_emp_selectarray(v_param);

exception

when no_data_found then

dbms_output.put_line(『找不到對應員工』);

end;

多引數傳遞 示例

create or replace procedure

pro_multi_params(param1 in number,param2 in number,param3 in number)

as v_sum number;

begin

v_sum := param1+param2+param3;

dbms_output.put_line(『v_sum:』 || v_sum);

end;

– call呼叫

call pro_multi_params(1,2,3);

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...

PL SQL 儲存過程

1 游標的設計開發 什麼是游標,為什麼用游標,怎樣使用游標 2 儲存過程 儲存過程的建立,引數使用,儲存過程的執行 3 儲存函式的設計 函式的建立,引數使用,函式的呼叫 4 包的設計與應用 什麼是包,包的建立及使用 儲存過程 建立語法 create or replace procedure proc...