在oracle中,可以使用“CREATE PROCEDURE”語句來創(chuàng)建存儲過程,基本語法“CREATE [OR REPLACE] PROCEDURE 過程名 [參數(shù)列表] IS […] BEGIN … END [過程名];”。
本教程操作環(huán)境:Windows7系統(tǒng)、Oracle 11g版、Dell G3電腦。
什么是存儲過程?
所謂存儲過程(Stored Procedure),就是一組用于完成特定數(shù)據(jù)庫功能的SQL語句集,該SQL語句集經(jīng)過編譯后存儲在數(shù)據(jù)庫系統(tǒng)中。
在使用時候,用戶通過指定已經(jīng)定義的存儲過程名字并給出相應(yīng)的存儲過程參數(shù)來調(diào)用并執(zhí)行它,從而完成一個或一系列的數(shù)據(jù)庫操作。
oracle創(chuàng)建存儲過程
語法
CREATE?[OR?REPLACE]?PROCEDURE?過程名?[?(參數(shù)?[,參數(shù)])?]?? IS?? ????[declaration_section]?? BEGIN?? ????executable_section?? [EXCEPTION?? ????exception_section]?? END?[過程名];
以下是創(chuàng)建過程必須定義的三種類型的語句。
-
IN:這是一個默認(rèn)參數(shù),它將值傳遞給子程序。
-
OUT:必須指定,它向調(diào)用者返回一個值。
-
IN OUT:必須指定,它將初始值傳遞給子程序并將更新的值返回給調(diào)用者。
Oracle創(chuàng)建過程示例
在此示例中,將在user表中插入記錄,所以需要先創(chuàng)建user表。
user表創(chuàng)建語句:
create?table?user(id?number(10)?primary?key,name?varchar2(100));
現(xiàn)在編寫程序代碼以在user表中插入記錄。
create?or?replace?procedure?"INSERTUSER"???? (id?IN?NUMBER,???? name?IN?VARCHAR2)???? is???? begin???? ????insert?into?user?values(id,name);???? end;???? /
執(zhí)行上面代碼,得到以下結(jié)果 –
Procedure?created.
Oracle程序調(diào)用過程
讓我們來看看如何調(diào)用上面創(chuàng)建的過程。參考以下示例代碼 –
BEGIN???? ???insertuser(101,'Maxsu');?? ???dbms_output.put_line('record?inserted?successfully');???? END;???? /
現(xiàn)在,查看USER表中的記錄,將看到上面插入了一條記錄。
ID????????Name --------------------------- 101????????Maxsu
推薦教程:《Oracle教程》