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



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

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

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

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

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

如果您的样本数据是准确的,那么我将只使用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;

最新更新