我们在使用mssql读取json数据的时候喜欢用JSON_VALUE这个函数 例如
@report_sql_state = JSON_VALUE(@json_in, '$.package.report_sql_state');
在package里面读取report_sql_state的内容,如果字符少于4000的话一切正常,可是当字符超过4000的时候返回是空!?而且没有任何报错!
经过多日研究结果用了以下语句可以处理
SELECT @package = value FROM OPENJSON(@json_in) WHERE [key] = 'package';
SELECT @report_state = value FROM OPENJSON(@package) WHERE [key] = 'report_state';
超过4000也正常,冒汗!