ibm-midrange - AS400 中的 Json_table
问题描述
我正在使用下面的带有 json 的 sql 查询,但我无法检索数据,检索到 0 行和 100 条记录未找到错误。有什么建议么
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;
解决方案
添加error on error
以查看 DB2 不会将您的输入视为有效 JSON
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;
您可以使用大括号来告诉最外面的东西是一个对象
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
并直接使用数组
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;
推荐阅读
- java - 当我尝试获取字符串的字节但从字符到字节的转换溢出整数长度时会发生什么?
- python - Django:使用未找到参数“(”,)”的“删除”反向。尝试了 1 种模式:['$']
- python - pandas 中的 groupby 并从输出 DataFrame 中排除 grouper 列
- python - ImportError:无法从“imaplib”导入名称“IMAP4_SSL”
- reactjs - Docker NetCore(微服务)+ React
- python - 由于我的 drf 登录视图中的 GET,我不断收到错误请求错误
- python - 使用 xmpppy 添加到名册?
- python - CNN 预测来自测试集,但不是自己的图像
- python - 使用 Stompest Python 在 ActiveMQ 上创建订阅时出错
- vcpkg - 如何更新 vcpkg 本身?