
程序调试——字段 XTSB 赋值 0 的情况
程序调试— — is_valule 值为空的情况
//*************************************************************************************//// Author : // Created : 2001.5.23// Modified :// Log ://*************************************************************************************// string ls_paraname,ls_valulels_paraname=upper(ls_csmc)select CSZ into :ls_valule from GY_XTCS whereXTSB=:li_xtsb and CSMC=:ls_paraname;IF sqlca.sqlcode <> 0 THEN gf_Begin_Transaction(sqlca) insertinto GY_XTCS(XTSB,CSMC,CSZ,BZ,MRZ) values(:li_xtsb,:ls_paraname,:ls_default,:ls_bz,:ls_default) ;IF sqlca.sqlcode = 0 THEN gf_Commit_Transaction(sqlca) ELSE gf_Rollback_Transaction(sqlca) END IF ls_valule=ls_defaultend ifIF IsNull(ls_valule) THEN ls_valule = ""return ls_valule
-- Create tableSQL> create table GY_XTCS( xtsb NUMBER(5) default 0 not null, csmc VARCHAR2(40) not null, csz VARCHAR2(100), mrz VARCHAR2(40), bz VARCHAR2(200), xgpb NUMBER(1) default 0, jgid NUMBER(3) default 1, xtsb2NUMBER(5) default 0)-- Create/Recreate primary, unique and foreign keyconstraintsSQL> alter table GY_XTCS add constraintPK_GY_XTCS primary key (XTSB, CSMC);
SQL> ALTER SYSTEM SET EVENTS '10035 trace namecontext forever, level 1';SQL> ALTER SYSTEM SET EVENTS '10035 trace namecontext off';
q 情况一:gy_xtcs 表有记录但CSZ 为空,测试结果sqlcode=0 。
q 情况二:gy_xtcs 表没有记录,测试结果sqlcode=100 。
q 情况三:gy_xtcs 表有记录,且CSZ 有值,测试结果sqlcode=0 。
SQL> create or replace functiongf_getpara(li_xtsb in number, ls_csmc in varchar2, ls_default in varchar2, ls_bz in varchar2) returnvarchar2 is ls_valulevarchar2(100);begin select CSZ intols_valule fromGY_XTCS where XTSB= li_xtsb and CSMC= upper(ls_csmc); IFls_valule is null THEN ls_valule:= ''; end if; return(ls_valule);exception whenno_data_found then insertinto GY_XTCS (XTSB,CSMC, CSZ, BZ, MRZ) values (li_xtsb,upper(ls_csmc), ls_default, ls_bz, ls_default); IF SQL%FOUNDTHEN COMMIT; else ROLLBACK; END IF; return(ls_valule);end gf_getpara;
