ORACLE怎么在子存储过程中抛出异常,父存储过程捕捉子存储过程抛出的异常,有没有例子呀
存储过程调用存储过程,怎么在子存储过程中抛出异常,父存储过程捕捉子存储过程抛出的异常,有没有例子呀。以下是我的父存储过程,这样不行呢CREATEORREPLACEPROC...
存储过程调用存储过程,怎么在子存储过程中抛出异常,父存储过程捕捉子存储过程抛出的异常,有没有例子呀。以下是我的父存储过程,这样不行呢
CREATE OR REPLACE PROCEDURE p_deal_cha_spec_convert( v_resultcode out number,v_resulterrinfo out varchar2,
offer_resultcode out number,offer_resulterrinfo out varchar2,
prod_resultcode out number,prod_resulterrinfo out varchar2,
price_resultcode out number,price_resulterrinfo out varchar2,
group_resultcode out number,group_resulterrinfo out varchar2)
/*特征规格转换 */
AS
tab_name varchar2(50);--需要转换的表名
val_fname varchar2(50);--需要转换的字段名
id_fname varchar2(50);--需要转换对应ID的字段名
spec_name varchar2(256);--特征规格名
spec_code varchar2(256);--特征规格编码
spec_type varchar2(10); --需要转换的规格类型
cha_val varchar2(256); --特征值
val_type varchar2(1); --特征值类型
t_cha_spec_id number(16);--特征规格ID
type type_cur is ref cursor;
cursor_val type_cur;
BEGIN
FOR m_convert_info IN(SELECT * FROM cha_spec_convert_config)LOOP
tab_name:=m_convert_info.con_tab_name;
val_fname:=m_convert_info.con_spec_val_fliedname;
id_fname:=m_convert_info.con_id_fliedname;
spec_name:=m_convert_info.con_spec_name;
spec_type:=m_convert_info.con_spec_type;
spec_code:=m_convert_info.con_spec_code;
val_type:=m_convert_info.con_val_type;
case spec_type
when 'offer' then
--销售品特征规格转换
p_deal_cha_spec_offer(tab_name,val_fname,id_fname,spec_name,spec_code,val_type ,offer_resultcode,offer_resulterrinfo);
when 'prod' then
--产品特征规格转换
p_deal_cha_spec_prod(tab_name,val_fname,id_fname,spec_name,spec_code,val_type ,prod_resultcode,prod_resulterrinfo);
when 'price' then
--价格特征规格转换
p_deal_cha_spec_price(tab_name,val_fname,id_fname,spec_name,spec_code,val_type ,price_resultcode,price_resulterrinfo);
when 'group' then
--分组特征规格转换
p_deal_cha_spec_group(tab_name,val_fname,id_fname,spec_name,spec_code,val_type ,group_resultcode,group_resulterrinfo);
end case;
END LOOP;
COMMIT;
v_resultcode := 0;
v_resulterrinfo := 'ok!';
EXCEPTION
WHEN OTHERS THEN
。。。。。。。
ROLLBACK;
END p_deal_cha_spec_convert; 展开
CREATE OR REPLACE PROCEDURE p_deal_cha_spec_convert( v_resultcode out number,v_resulterrinfo out varchar2,
offer_resultcode out number,offer_resulterrinfo out varchar2,
prod_resultcode out number,prod_resulterrinfo out varchar2,
price_resultcode out number,price_resulterrinfo out varchar2,
group_resultcode out number,group_resulterrinfo out varchar2)
/*特征规格转换 */
AS
tab_name varchar2(50);--需要转换的表名
val_fname varchar2(50);--需要转换的字段名
id_fname varchar2(50);--需要转换对应ID的字段名
spec_name varchar2(256);--特征规格名
spec_code varchar2(256);--特征规格编码
spec_type varchar2(10); --需要转换的规格类型
cha_val varchar2(256); --特征值
val_type varchar2(1); --特征值类型
t_cha_spec_id number(16);--特征规格ID
type type_cur is ref cursor;
cursor_val type_cur;
BEGIN
FOR m_convert_info IN(SELECT * FROM cha_spec_convert_config)LOOP
tab_name:=m_convert_info.con_tab_name;
val_fname:=m_convert_info.con_spec_val_fliedname;
id_fname:=m_convert_info.con_id_fliedname;
spec_name:=m_convert_info.con_spec_name;
spec_type:=m_convert_info.con_spec_type;
spec_code:=m_convert_info.con_spec_code;
val_type:=m_convert_info.con_val_type;
case spec_type
when 'offer' then
--销售品特征规格转换
p_deal_cha_spec_offer(tab_name,val_fname,id_fname,spec_name,spec_code,val_type ,offer_resultcode,offer_resulterrinfo);
when 'prod' then
--产品特征规格转换
p_deal_cha_spec_prod(tab_name,val_fname,id_fname,spec_name,spec_code,val_type ,prod_resultcode,prod_resulterrinfo);
when 'price' then
--价格特征规格转换
p_deal_cha_spec_price(tab_name,val_fname,id_fname,spec_name,spec_code,val_type ,price_resultcode,price_resulterrinfo);
when 'group' then
--分组特征规格转换
p_deal_cha_spec_group(tab_name,val_fname,id_fname,spec_name,spec_code,val_type ,group_resultcode,group_resulterrinfo);
end case;
END LOOP;
COMMIT;
v_resultcode := 0;
v_resulterrinfo := 'ok!';
EXCEPTION
WHEN OTHERS THEN
。。。。。。。
ROLLBACK;
END p_deal_cha_spec_convert; 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询