首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AS400中的Json_table

AS400中的Json_table
EN

Stack Overflow用户
提问于 2021-11-08 10:18:53
回答 1查看 55关注 0票数 0

我正在使用下面的sql查询和json,但我无法检索数据,检索到0行,100条记录未找到错误。有什么建议吗

代码语言:javascript
复制
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; 
EN

回答 1

Stack Overflow用户

发布于 2021-11-08 13:26:04

添加error on error以查看DB2不会将您的输入视为有效的JSON

代码语言:javascript
复制
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'  
      ) )
      error on error) as t;

您可以使用大括号告诉最外层的对象是一个对象

代码语言:javascript
复制
select *                                                                  
  from json_table('{"fetchData":[{
    "vehicleIdOutput":8005451,
    "sequenceNumberOutput":0}]}',
    '$.fetchData'
     COLUMNS (
        vehicleIdOutput decimal(7, 0) path '$.vehicleIdOutput',
        sequenceNumberOutput decimal(7, 0) path '$.sequenceNumberOutput'
        )
      error on error ) as t; 

或者删除fetchData并直接使用数组

代码语言:javascript
复制
select *                                                                  
  from json_table('[{
    "vehicleIdOutput":8005451,
    "sequenceNumberOutput":0}]',
    '$'
     COLUMNS (
        vehicleIdOutput decimal(7, 0) path '$.vehicleIdOutput',
        sequenceNumberOutput decimal(7, 0) path '$.sequenceNumberOutput'
        )
      error on error ) as t; 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69881868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档