您的位置:首页 > 数据库 > Oracle

报表中两种传空参数方式的区别

2014-11-14 14:05 211 查看
--两种传参数方式的区别

--费用采购接收单:CUX_COST_PURCHASE_REV_PKG

--CURSOR c_count(X_PF IN VARCHAR2)中如果用第一种 MSIB.SEGMENT1查出来不能为空值,

--对于按类别而不是按料号采购的就查不出数据(有物料类别,无料号)

AND MSIB.SEGMENT1 BETWEEN NVL(P_ITEM_NUM_F, MSIB.SEGMENT1) AND NVL(P_ITEM_NUM_T, MSIB.SEGMENT1) --不太耗资源

--如果用第二种就可以允许查出的MSIB.SEGMENT1为空

AND (MSIB.SEGMENT1 BETWEEN P_ITEM_NUM_F AND P_ITEM_NUM_T 

                     OR (P_ITEM_NUM_F IS NULL OR P_ITEM_NUM_T IS NULL)) --耗资源

--推荐使用:

--(1)

AND decode(P_ITEM_NUM_F,null,'1',P_ITEM_NUM_F)=decode(P_ITEM_NUM_F,null,'1',MSIB.SEGMENT1)

--(2);MTLN.LOT_NUMBER可能为空值

AND (NVL(MTLN.LOT_NUMBER,'A')

              BETWEEN NVL(P_LOT_NUMBER_FROM,NVL(MTLN.LOT_NUMBER,'A')) 

                  AND NVL(P_LOT_NUMBER_TO,NVL(MTLN.LOT_NUMBER,'A')))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  plsql oracle 报表