oracle存储过程里判断传进来变量是否为空
如下:
用:is null、is not null来判断处理 如下: create procedure xxx(AAA in varchar2) as begin if AAA is null then --sql else --sql end if; end xxx;
其他判断的几个参考:
SELECT COUNT(*) INTO V_V_COUNT FROM PROJ_REPORT_INFO WHERE PROJID = V_P_PROJID AND REPORTTYPE = 'FIRST_REPORT'; IF (V_V_COUNT > 0) THEN SELECT REPORTID INTO V_REPORTID FROM PROJ_REPORT_INFO WHERE PROJID = V_P_PROJID AND REPORTTYPE = 'FIRST_REPORT'; END IF;
nvl的使用参考:
NVL(X1,X2) --//如果X1不为空,返回x1;否则返回X2;(如 : NVL(ename, 'null'))
--查询是否关联企业,有值就显示原有的值,否则就是1,1代表是关联企业的, --用sum是为了如果没有值就显示为空,为空就赋值 为1 SELECT nvl(sum(EXINFOVALUE),1) INTO V_ISRELATEDTOCORPCOUNT FROM PROJ_EXINFO WHERE PROJID = V_PROJSERIALID_IN AND EXINFOCODE='isrelatedToCorp'; --如果是自然人(2)且没有关联企业(0-否),只检测项目基本信息是否填写,其他都不用检测 IF V_ISRELATEDTOCORPCOUNT = '0' AND V_CUSTOMERTYPE = '2' THEN BEGIN IF V_APPLYMONEY > 0 AND V_LOANBANKID IS NOT NULL THEN BEGIN V_RECODE_OUT := '1'; END; ELSE BEGIN V_RECODE_OUT := '-2'; END; END IF; END; END IF;
END;