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