1 在Oracle 資料庫中進行過程調試
Oracle 進行過程調試的格式為:
Declare
Param_int integrate;
Begin
Null;
--operate the data
end
Sql server 的過程調試格式:
在sql server中過程編寫過程為直接編寫sql語句
比如以上的過程的指令碼在Sql service中實現為
Declare @param_int int
Null;
--Operate the data;
2 在Oracle 編寫預存程序
2.1 整個預存程序各個環節文法注意事項
下面首先提供以下基本格式的預存程序文法結構
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)預存程序介面的參數在多個情況下,需要加上,進行間隔
2)預存程序的變數參數,每個變數的定義後面都加上;
3)預存程序的執行體,在結束後加上;符號。
2.2 If條件陳述式文法
If語句的格式為:
If ()then
Begin
End
Elsif ()then
Begin
End
End if
If 語句和Sql Server 格式不一樣
在 Sql Server 中的If語句的格式為
If()
Begin
--Operate the data
End
Else ()
Begin
--Operate The data
End
2.3返回資料集合的方式
l_cursor out DSPackage.DataSet
定義遊標格式的變數,同時在預存程序中,對遊標進行設定
在Sql Server 中資料集合返回格式為
直接在預存程序的操作區中最後一個select語句,查詢的資料結果,這種方式在Oracle中會出現異常。
2.4變數定義 和賦值的方式
在Oracle中變數定義格式
變數名稱 varchar
賦值的方式
變數名稱:=變數值。
Sql Server 中為
Declare @param int;
Set @param=1;
2.5使用Select into 的方式進行資料賦值方式時,在沒有資料填充的情況下,異常情況
注意在 Oracle 中Select 返回結果中沒有資料集的情況下,就會發生異常,需要進行異常處理。
在Sql server中 變數為Null
2.6 oracle中的異常處理
EXCEPTION
WHEN OTHERS
THEN
--傳回值賦值
raise_application_error (-20000,
'任務隊列入日誌庫錯誤' || SQLERRM
);
GOTO proc_end;
<<proc_end>>
NULL;
2.7 變更影響行號數值的擷取
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 := '更新協查事件表問題標識失敗';
--raise exp;
end;
end if;
以上sql%rowcount = 0 部分為 判斷更新影響的行數是否為0
2.8 通過Select 建立表
執行個體: create table CC_NeedImport_CellPhoneSort as select * from cellphonesort
文法格式:create Table 表名 as select * from 表名
2.9 字串拼接
執行個體: concat(endcode,'0')
SqlServer 中為 endcode+'0'