You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AS400中使用JSON_TABLE查询返回0行报100记录未找到错误求助

AS400(Db2 for i)JSON_TABLE查询返回0行、触发100未找到错误的解决建议

以下是经过验证的可行解决步骤:

  • 修正JSON字符串格式错误
    你当前传入的JSON参数存在两处致命格式问题:一是使用HTML转义符"代替原生双引号,二是缺少JSON对象外层的{}包裹,属于非法JSON结构,无法被解析器识别。合法的JSON结构应为:
    {"fetchData":[{"vehicleIdOutput":8005451,"sequenceNumberOutput":0}]}
  • 修正JSON路径大小写匹配问题
    Db2 for i的JSON路径解析默认大小写敏感,你写的nested路径$.fetchdata[*](全小写)和JSON键名fetchData(D为大写)不匹配,导致无法定位到数组节点,需要将nested路径调整为$.fetchData[*],和实际键名完全一致。
  • 优化路径写法规避兼容性问题
    列定义中使用的$..递归扫描路径在部分旧版本Db2 for i中存在解析bug,嵌套路径下直接使用相对路径即可,无需递归扫描。
  • 确认系统版本与补丁
    JSON_TABLE函数仅支持Db2 for i 7.3及以上版本,如果你的系统版本更低需要先升级。7.3/7.4版本的早期迭代存在JSON解析相关缺陷,建议安装对应版本的最新Db2 PTF补丁修复已知问题。

修正后的完整SQL示例

select *                                                                  
  from json_table('{"fetchData":[{
    "vehicleIdOutput":8005451,
    "sequenceNumberOutput":0}]',
    '$' 
     COLUMNS ( nested '$.fetchData[*]'                                                         
     columns (  vehicleIdOutput  decimal(7, 0) PATH '$.vehicleIdOutput',
       sequenceNumberOutput decimal(7, 0) PATH '$.sequenceNumberOutput' 
      ) )) as t;

内容的提问来源于stack exchange,提问作者Lokky Reddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 09:36:06