以前寫過一些儲存過程,不過現在都忘記了,前段時間又要處理一些負雜的資料,所以又自學了一遍儲存過程。
首先我們需要了解一些基礎知識:
引數型別:
in:值傳遞,其作用就相當於常量,預設型別;out:相當於變數,在過程中返回乙個值通常到這個型別;
in out:很明顯,就是兩個合起來,用於接受呼叫程式的值,並向呼叫程式返回更新的值。 in
outin out
預設,向子程式傳值,引數可以有預設值
必須被指定,向呼叫者返回值
必須被指定,向子程
序傳遞初始值並返回更新後的結果值
形參的作用同常量相同
形參的作用同變數相同
形參的作用同被初始化過的變數相同
形參不能被賦值
形參必須被賦值
形參應該被賦值
實參可以是常量、變數、表示式
形參必須是變數
形參必須是變數
:=:這個符號表示賦值。
語法結構:
create or replace procedure procedure_name(parmeter in/out/in out type)
is/as--表示後面是乙個pl/sql體
parmeter type; --這是你自定義的臨時引數
begin--開始過程
code.....
execption--異常處理
code.....
end procedure_name;--結束過程
關於is和as的區別:
在儲存過程(procedure)和函式(function)中沒有區別;
在檢視(view)中只能用as不能用is;
在游標(cursor)中只能用is不能用as。
下面來寫乙個例子:
1、建表
create table student
( id varchar(10) not null, --編號
name varchar(10) not null, --姓名
*** char(1) not null, --性別
class varchar(10) --班級
)
2、寫乙個插入資料的過程
create or replace procedure pro_insert_stu(id varchar,name varchar,*** char,class varchar)
asbegin
insert into student values(id,name,***,class); --執行插入操作
commit; --提交資料
end pro_insert_stu; --結束過程
執行過程:
pl/sql developer:
begin
-- call the procedure
pro_insert_stu('2','ds','1','2');
end;
toad:
exec pro_insert_stu('2','ds','1','2');
執行結果圖:
3、乙個具有返回值的過程(統計班級人數)
create or replace procedure pro_count_stu(classname varchar)
asnum number;
begin
select count(*) into num from student where class=classname;
dbms_output.put_line(classname||'班,共有'||num||'人');
end pro_count_stu; --結束過程
執行結果圖:
以上都是一些入門用的小例子,要想學好還得繼續研究。。。
oracle儲存過程入門
寫個簡單的儲存過程 選用scott的emp表。給員工漲工資,大於2000的漲50,大於1000的漲100,其他的漲150 create or replace procedure addsal employno varchar2 is increment number salary number be...
Oracle儲存過程入門
1.包中定義的儲存過程,必須在包體中實現 但包體中實現的儲存過程在包中可以不定義 2.儲存過程實現中,一旦有begin.end pro name 在begin與end之間必須有 塊。3.儲存過程實現中,如果過程沒有入參與出參列表,則直接寫過程名,沒有 4.在包頭與包體中宣告中包括以下幾種定義 包頭 ...
Oracle 儲存過程入門
建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...