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