淺談Oracle數(shù)據(jù)庫新手開發(fā)指南
Oracle 數(shù)據(jù)庫進(jìn)行過程調(diào)試的格式為:
Sql server 的過程調(diào)試格式:
- Declare
- Param_int integrate;
- Begin
- Null;
- --operate the data
- end
在sql server中過程編寫過程為直接編寫sql語句
比如以上的過程的腳本在Sql service中實現(xiàn)為
- Declare @param_int int
- Null;
- --Operate the data;
2 在Oracle數(shù)據(jù)庫編寫存儲過程
2.1 整個存儲過程各個環(huán)節(jié)語法注意事項
下面首先提供以下基本格式的存儲過程語法結(jié)構(gòu)
- CREATE OR REPLACE PROCEDURE cc_getmanualquery
- (
- param_inputNum IN number,
- Param_inputString In varchar,
- Param_OutNum out varchar
- )
- AS
- Param_temp Number;
- begin
- --Operate the data
- end ;
注意事項:
1)存儲過程接口的參數(shù)在多個情況下,需要加上,進(jìn)行間隔
2)存儲過程的變量參數(shù),每個變量的定義后面都加上;
3)存儲過程的執(zhí)行體,在結(jié)束后加上;符號。
2.2 If條件語句語法
If語句的格式為:
If 語句和Sql Server 格式不一樣
- If ()then
- Begin
- End
- Elsif ()then
- Begin
- End
- End if
在 Sql Server 中的If語句的格式為
2.3返回數(shù)據(jù)集合的方式
- If()
- Begin
- --Operate the data
- End
- Else ()
- Begin
- --Operate The data
- End
l_cursor out DSPackage.DataSet
定義游標(biāo)格式的變量,同時在存儲過程中,對游標(biāo)進(jìn)行設(shè)定
在Sql Server 中數(shù)據(jù)集合返回格式為直接在存儲過程的操作區(qū)中最后一個select語句,查詢的數(shù)據(jù)結(jié)果,這種方式在Oracle數(shù)據(jù)庫中會出現(xiàn)異常。
2.4變量定義 和賦值的方式
在Oracle中變量定義格式
變量名稱 varchar
賦值的方式
變量名稱:=變量值。
Sql Server 中為
2.5使用Select into 的方式進(jìn)行數(shù)據(jù)賦值方式時,在沒有數(shù)據(jù)填充的情況下,異常情況
- Declare @param int;
- Set @param=1;
注意在 Oracle數(shù)據(jù)庫中Select 返回結(jié)果中沒有數(shù)據(jù)集的情況下,就會發(fā)生異常,需要進(jìn)行異常處理。
在Sql server中 變量為Null.
2.6 oracle數(shù)據(jù)庫中的異常處理
2.7 變更影響行號數(shù)值的獲取
- EXCEPTION
- WHEN OTHERS
- THEN
- --返回值賦值
- raise_application_error (-20000,
- '任務(wù)隊列入日志庫錯誤' || SQLERRM
- );
- GOTO proc_end;
- <<proc_end>>
- NULL;
- if sql%rowcount = 0 then
- begin
- open l_cursor for select* from CC_MANUAL where id is null;--表的名字
- i_o_state := -9;
- v_o_msg := '更新協(xié)查事件表問題標(biāo)識失敗';
- --raise exp;
- end;
- end if;
以上sql%rowcount = 0 部分為 判斷更新影響的行數(shù)是否為0
【編輯推薦】