DB2儲存過程 Oracle對比

2021-12-29 22:30:00 字數 3496 閱讀 4131

drop procedure cdi.prc_cim_identity_find@

create procedure cdi.prc_cim_identity_find(

in i_id_num varchar(21),--oracle i_id_num in varchar(21) db2也有in out

in i_cert_type varchar(5),

in i_num_type integer,

out o_respnose_type varchar(1),

out o_respnose_code varchar(6)

)dynamic result sets 2

language sql

not deterministic

called on null input

modifies sql data

inherit special registers

begin

declare v_id_num varchar (21);--oracle:在is/as中對變數宣告且沒有declare

--查詢號碼(傳入資料預處理)

declare v_cert_type varchar (8); --查詢證件型別(傳入資料預處理)

declare v_num_type integer; --查詢型別(傳入資料預處理)1:查詢號碼是卡號;2:查詢號碼是證件號碼;--3:查詢號碼是客戶號;

declare v_cust_union_id varchar(21);

--宣告出錯處理

declare exit handler forsqlexceptionbegin

set o_respnose_type = 'e';--

set o_respnose_code = '000005';--

end;--

--宣告結束

--對傳入引數空(值null)進行初始化

set v_id_num = rtrim(ltrim(i_id_num));--可代替函式trim() replace()

set v_cert_type = rtrim(ltrim(i_cert_type));--ora 賦值 :=

set v_num_type = i_num_type;

--當v_num_type查詢型別為1時,查詢結果為此卡所屬客戶的所有標識

--當v_num_type查詢型別為2時,查詢結果為此證件號碼所屬客戶的所有標識;

--當證件型別為空時,查詢所有證件 --當v_num_type查詢型別為3時,查詢結果為此客戶號所屬客戶的所有標識

if v_cust_union_id is null then

set v_cust_union_id='';

end if;

if v_cert_type is null then

set v_cert_type='';

end if;

--查詢號碼與查詢型別不能為空

if v_id_num is null or v_id_num = '' or v_num_type < 1 then

set o_respnose_type = 'e';

set o_respnose_code = '000003';

return;--終止儲存過程繼續執行

else

--查詢號碼型別為1卡號並且查詢號碼不為空||測試資料--5218990187677975

if v_num_type = 1 and v_id_num is not null then

begin

select distinct cust_union_id into v_cust_union_id from

cdi.cim_card_info where card_num=v_id_num withur;--髒讀

end;

--查詢號碼型別為2並且證件型別不為空

elseif v_num_type = 2 and v_cert_type <>'' then

begin

select distinct cust_union_id into v_cust_union_id from

cdi.cim_cust_iden_info

where cert_num=v_id_num and cert_type_cd=v_cert_type fetch first 1 rows only with ur;

end;

elseif v_num_type = 2 and v_cert_type = '' then

begin

select cust_union_id into v_cust_union_id from

cdi.cim_cust_iden_info

where cert_num=v_id_num fetch first 1 row only with ur;--

end;--

elseif v_num_type <> 1 and v_num_type <> 2 then

begin

select distinct cust_union_id into v_cust_union_id from

cdi.cim_cust_base_info

where cust_ref_num=v_id_num with ur;--

end;--

end if;--

if v_cust_union_id = '' then

set o_respnose_type = 'n';--

set o_respnose_code = '000004';--

return;--

end if;--

if v_num_type = 1 then --查詢卡號 /*卡標識*/

begin

declare result_card cursor with return for

select * from tablename with ur;--

open result_card;--

end;--

else --查詢統一編號

begin

declare result_card cursor with return for

select * from tablename with ur;--

open result_iden;--

end;--

set o_respnose_type = 'n';--

set o_respnose_code = '000000';--

end if;--

end@

grant execute on procedure cdi.prc_cim_identity_find to public;

DB2儲存過程 Oracle對比

drop procedure cdi.prc cim identity find create procedure cdi.prc cim identity find in i id num varchar 21 oracle i id num in varchar 21 db2也有in out i...

db2儲存過程批量插入資料 db2儲存過程批量更新

db2儲存過程批量更新 雲伺服器 elastic compute service,簡稱ecs 是阿里雲提供的效能卓越 穩定可靠 彈性擴充套件的iaas infrastructure as a service 級別雲計算服務。雲伺服器ecs免去了您採購it硬體的前期準備,讓您像使用水 電 天然氣等公共...

db2儲存過程批量插入資料 db2儲存過程批量提交

db2儲存過程批量提交 雲伺服器 elastic compute service,簡稱ecs 是阿里雲提供的效能卓越 穩定可靠 彈性擴充套件的iaas infrastructure as a service 級別雲計算服務。雲伺服器ecs免去了您採購it硬體的前期準備,讓您像使用水 電 天然氣等公共...