我有一个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;