您的位置:首页 > 数据库

PL/SQL中的几种异常处理方法

2008-04-27 19:58 435 查看
这是Pona的文章,我斗胆将其贴上来,Pona不要介意哦!^_^

PL/SQL里,有三种方法可以在处理大批量数据时不会因为一条或几条数据错误而导致异常中止程序。

1、用Fetchintoacursor%TYPE把要处理的数据放到记录集里。当一条数据不符条件时,用标签<<NEXT_RECORD>>和GOTONEXT_RECORD跳转语句使程序忽略这一条,转到下一条继续处理。

-------------------------------------------------------------------------------

--FunctionName : CalculateImportCharge

--FunctionDesc : CalculateImportCharge

--Createdby : Author

--CreatedDate : 2003-05-16

-------------------------------------------------------------------------------

FUNCTIONCalculateImportCharge(

p_i_job_id INVARCHAR2,

p_i_as_of_date_idINVARCHAR2)RETURNNUMBER

AS

CURSORcur_ShipBlHeaderIS

SELECTimport_folder_no

FROMGMY_SHIP_BL_HEADER

WHERECANCEL_FLG=GMY_GA000_PKG.BL_CANCEL_FLG_OFF;

rec_ShipBlHeader cur_ShipBlHeader%ROWTYPE;

BEGIN

OPENcur_ShipBlHeader;

FETCHcur_ShipBlHeaderINTOrec_ShipBlHeader;

WHILEcur_ShipBlHeader%FOUNDLOOP

x_num_error_code:=GMY_GA000_PKG.CheckValidMasterBlNo(

p_i_job_id,

p_i_as_of_date_id,

rec_ShipBlHeader.import_folder_no,

x_vch_message);

IFx_num_error_code

IN(GMY_GA000_PKG.gn#NG,GMY_GA000_PKG.INVALID_BL_NO)THEN

x_vch_message:=

p_i_job_id

||'WARNING:FunctionCheckValidMasterBlNo@'1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: