繁体   English   中英

如何识别 clob 包含单个 json 对象或 json 对象数组

[英]How to identify a clob contains a single json object or an array of json object

我有一个 clob 数据类型,有时会返回一个 json 对象:

{
  "data1" : "xxxxxx",
  "data2" : "xxxxxx"
}

有时会返回一个 json 对象数组:

[{
  "data1" : "xxxxxx",
  "data2" : "xxxxxx"
},
.....
{
  "data1" : "xxxxxx",
  "data2" : "xxxxxx"
}]

我如何识别它们并适当地使用 json_array_t 或 json_object_t? 是否有一个简单的 if 条件可以适用?

如果您的示例数据准确,那么我将只使用 dbms_lob.substr 来获取第一个字符,如果它是一个方括号,那么您有多个,否则您只有一个....

有关 dbms_lob 包的更多信息(恰好是 10g doco,但不要认为它已更改但如果需要请确认您的 Oracle 版本) https://docs.oracle.com/cd/B19306_01/appdev.102/b14258 /d_lob.htm#i999349

所以你最终会得到类似下面的逻辑

 select dbms_lob.substr(*your lob here*, 1, 1)
 into v_whaterver
 from dual;

 If v_whatever = '[' THEN 
   --you have multiple
 ELSE 
   -- you have single
 END IF;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM