SQL JSON_表查询需要两个表来运行查询

SQL JSON_表查询需要两个表来运行查询,sql,json,oracle12c,Sql,Json,Oracle12c,我在运行此查询时遇到了这种情况,我得到了错误json语法错误,提供的数据具有无效语法,无法解析 select D.* from J_PURCHASEORDER p, JSON_TABLE( p.PO_DOCUMENT , '$' columns(PO_NUMBER NUMBER(10) path '$.PONumber' ) ) D where PO_NUMBER between 450 and 455

我在运行此查询时遇到了这种情况,我得到了错误
json语法错误,提供的数据具有无效语法,无法解析

    select D.*
  from J_PURCHASEORDER p,
       JSON_TABLE(
         p.PO_DOCUMENT ,
         '$' columns(PO_NUMBER    NUMBER(10)            path  '$.PONumber' ) ) D
 where PO_NUMBER between 450 and 455
但是,当我运行查询时

    select D.*
  from J_PURCHASEORDER p,O_OrderList l
       JSON_TABLE(
         p.PO_DOCUMENT ,
         '$' columns(PO_NUMBER    NUMBER(10)            path  '$.PONumber' ) ) D
 where PO_NUMBER between 450 and 455
查询似乎运行良好。
有人能帮我解决这个问题吗?

在我的查询中,我可以使用
消除json语法错误,其中p.PO_文档是json
。这样,如果我的列不是json(由于任何原因),它会跳过它,现在我可以毫无问题地运行查询。

您在发布问题时,订单列表l后缺少一个逗号;第二个是成功运行并返回所有行,还是返回一些行,然后在结果集中得到相同的错误?在p和l之间有笛卡尔积,所以可能比您预期的多很多行。该错误表明p行中有错误的JSON;在第二个查询中,您可能还没有达到这个目标。请共享您得到错误的示例数据。@AlexPoole谢谢。是的,有一个输入错误,第二个输入错误运行成功。有几千行,我刚刚意识到,当我在SQLDeveloper中查看结果时,我最终得到了相同的错误。有什么办法可以避免吗?@KaziMohammadAliNur对于有限的数据集来说,它似乎工作得很好。但对于大量未分类的数据,它失败了。