背景:工单管理功能,供应商信息字段是存的JSON字符串(数据库是2008R2版本),这个功能没有使用ES,现在业务需要增加供应商相关信息的查询
实现:利用OPENJSON函数
用ADO拼接Sql执行的时候报以上错误,复制sql出来放到DBeaver里面执行又没有问题,同样的sql,至于任务紧张不展开研究了, 换成存储过程就好了
IF isnull(@SupplierId,'')<>''
set @where = @where + ' and CHARINDEX(
@SupplierId,
stuff(
(
SELECT '',''+ SupplierId
FROM OPENJSON(SKUInfoJson) WITH (
SupplierId varchar(10)
)
for xml path('''')
),1,1,'''')
)>0 '
IF isnull(@SupplierName,'')<>''
set @where = @where + ' and CHARINDEX(
@SupplierName,
stuff(
(
SELECT '',''+ SupplierName
FROM OPENJSON(SKUInfoJson) WITH (
SupplierName nvarchar(50)
)
for xml path('''')
),1,1,'''')
)>0 '