在CLOB,pl / sql中单独获取json数据

时间:2015-02-05 11:05:39

标签: json oracle plsql

我在pl / sql中有CLOB数据格式的json对象,现在我需要将每个数据字段从该json对象分别获取到varchar变量。不使用pljson。

1 个答案:

答案 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中的包装函数调用此函数