Oracle存儲過程和函數
創建一個存儲過程:
CREATE OR REPLACE procedure proc_trade(
v_tradeid in tt_b.number%TYPE, --交易id
v_third_ip in tt_b.varchar2%TYPE, --第三方ip
v_third_time in tt_b.date%TYPE , --第三方完成時間
v_thire_state in tt_b.number%TYPE , --第三方狀態
o_result out tt_b.number%TYPE, --返回值
o_detail out tt_b.varchar2%TYPE --詳細描述
)
as
--變量賦值
o_result:=0;
o_detail:='驗證失敗';
--業務邏輯處理
if v_tradeid >100 then
insert into table_name(...) values(...);
commit;
elsif v_tradeid < 100 and v_tradeid>50 then
insert into table_name(...) values(...);
commit;
else
goto log;
end if;
--跳轉標志符,名稱自己指定
<<log>>
o_result:=1;
--捕獲異常
exception
when no_data_found
then
result := 2;
when dup_val_on_index
then
result := 3;
when others
then
result := -1;
end proc_trade;