createorreplace
procedure
儲存過程名字
( 引數1
innumber
, 引數2
innumber
) is/as
變數1
integer :=0;
變數2 date;
begin..
.end 儲存過程名字
將select查詢的結果存入到變數中,可以同時將多個列(字段)儲存到多個變數中,必須有一條記錄,否則丟擲異常(如果沒有記錄,丟擲no_data_found)
例子:
beginselect col1,col2 into 變數1,變數2 from typestruct where
***;
exception
when no_data_found then
rollback
; raise;
end;
if 條件1 thendo someting
elsif 條件2
then
do someting
elsif 條件3
then
do someting
else
do someting
endif;
while v_test=1loop
begin
***x
end;
end loop;
v_test :=123;
...iscursor cur is
select
*from
***;
begin
for cur_result in
cur loop
begin
v_sum :
=cur_result.列名1+
cur_result.列名2
end;
endloop;
end;
連線資料庫後建立乙個test window
在視窗輸入呼叫sp的**,f9開始debug,ctrl+n單步除錯
1)儲存過程引數不帶取值範圍,in表示傳入,out表示輸出;
2)變數可帶取值範圍,後面接分號;
3)在判斷語句前最好先用count(*)函式判斷是否存在該條操作記錄
4)用select...into...給變數賦值
5)在**中丟擲異常用raise;通常的用法:
exceptionwhen others then
rollback
; raise;
/*異常分很多類,如no_data_found。others處本應該寫異常名稱,如果不想把異常分得那麼細,可以籠統一點用others來捕獲,即所有異常均用others來捕獲。
when others then 表示是其它異常。
raise表示丟擲異常,讓user可以看到。
*/
6)as/is的區別
在試圖(view)中只能用as不能用is
在游標(cursor)中只能用is不能用as
7)輸出變數賦值有兩種,一種是直接:=,還有一種就是select into
8)顯示除錯資訊
a.儲存過程中在必要的位置新增
dbms_output.put_line('hi');
b.開啟dbms_output
show serveroutput;set serveroutput on;
9)刪除procedure
dropprocedure procedure_name;
oracle procedure 儲存過程
oracle 儲存過程的基本語法 1.基本結構 create or replace procedure 儲存過程名字 引數1 in number,引數2 in number is 變數1 integer 0 變數2 date begin end 儲存過程名字 2.select into statem...
Oracle procedure呼叫例項
oracle經常需要進行一些儲存過程來進行其它資料庫呼叫或資料庫資料智慧型更新,下面就乙個例項來展示其全過程。首先,編寫乙個procedure 文字。然後,登陸sql developer 新增procedure 單擊procedure 新建,輸入乙個名字,單擊確定。然後將寫好的語句接入 begin ...
mysql儲存過程now mysql儲存過程
建立清除過期積分儲存過程 delimiter drop procedure if exists reporturl create procedure reporturl begin 定義變數 declare s int default 0 declare sum integral varchar 2...