我都疯了
原因:我的字段数据类型为text, 当text字段长度超过8000或ntext字段长度超过4000字节时多出的字节会被截断。
解决办法:将字段转换为 NVARCHAR(MAX)
修改前
select
JSON_VALUE(registerdata,'$.addtime') as key1
,JSON_VALUE(registerdata,'$.user') as VALUE1
from [wzh].[dbo].[m_web_yghs_hsjl] a
where uid='50301' and state=2
修改后
select
JSON_VALUE(cast (registerdata as NVARCHAR(MAX)),'$.addtime') as key1
,JSON_VALUE(cast (registerdata as NVARCHAR(MAX)),'$.user') as VALUE1
from [wzh].[dbo].[m_web_yghs_hsjl] a
where uid='50301' and state=2
yeah.
参考:Sqlserver 报错“参数数据类型 ntext/text 对于 replace 函数的参数 1 ”的解决方案及原理分析扩展