标签:强制 数值 不用 set 有用 最大的 color 存储过程 mic
近期根据甲方需求做了一张简单的UAP报表,由于需要过滤条件所以写的是存储过程,设置了几个参数
写好的存储过程直接执行后没有问题,四个参数都是传递的nulll值:
DECLARE @return_value int EXEC @return_value = [dbo].[qijun_zuixindanjia] @cinvcode = NULL, @cfree1 = NULL, @vendor = NULL, @cbustype = NULL SELECT ‘Return Value‘ = @return_value
结果如下:
但是发布到U8后,怎么查询都没有结果,可是存储过程明明可以正常执行,那问题只能出现在UAP平台里面了
仔细想了一下,这一次报表添加的过滤条件是之前没有用过的,有可能这个过滤条件UAP传递的参数值不是null而是空值
于是我重新执行一下存储过程,这次参数不用NULL,而是用空字符串:
DECLARE @return_value int EXEC @return_value = [dbo].[qijun_zuixindanjia] @cinvcode =‘‘, @cfree1 = ‘‘, @vendor = ‘‘, @cbustype = ‘‘ SELECT ‘Return Value‘ = @return_value
查询结果确实是空:
看来最大的可能原因是,用友UAP对于某些查询条件默认传递的是空字符串,在存储过程将参数值强制设置为null就可以了:
if @cinvcode=‘‘ set @cinvcode=null if @cfree1=‘‘ set @cfree1=null if @vendor=‘‘ set @vendor=null if @cbustype=‘‘ set @cbustype=null
修改后UAP平台就可以正常查询出结果了:
标签:强制 数值 不用 set 有用 最大的 color 存储过程 mic
原文地址:https://www.cnblogs.com/daiyudong/p/12155451.html