我在pl / sql中有CLOB数据格式的json对象,现在我需要将每个数据字段从该json对象分别获取到varchar变量。不使用pljson。
答案 0 :(得分:1)
最简单的方法是使用第三方库,如果你使用的是最多11个。对我来说,一个好的库是pljson,它可以处理CLOB,但也可能有其他库。
使用Oracle 12c,您可以通过SQL本地解析JSON;这是12c的一个重要新功能。
<强>更新强>
一个非常简单粗暴的方法是使用regexp_substr函数从CLOB / VARCHAR2中提取专用密钥,如下所示:
REGEXP_SUBSTR(T.JOSN_CLOB, '\s*"*(key1)"*\s*:\s*"(.*)"', 1, 1, 'im', 2)
其中key1是你的clob感兴趣的键。这可能不是很快,正则表达式可能更专业,但您可以提取简单的值 另一种方法是检查pljson包并重命名导致问题的部分,方法是通过APEX SQL Workshop安装或者用适当的JSON库编写JAVA存储过程/函数,并通过PL / SQL或SQL中的包装函数调用此函数