SELECT JSON_OBJECTAGG( id VALUE text )
FROM XMLTABLE(
'/xml/*'
PASSING XMLTYPE( '<xml><name>himanshu</name></xml>')
COLUMNS id VARCHAR2(200) PATH './name()',
text VARCHAR2(200) PATH './text()'
);
SELECT JSON_OBJECTAGG( id VALUE text ) AS json
FROM table_name t
CROSS APPLY XMLTABLE(
'/xml/*'
PASSING XMLTYPE( t.xml )
COLUMNS id VARCHAR2(200) PATH './name()',
text VARCHAR2(200) PATH './text()'
);
其中,对于样本数据:
CREATE TABLE table_name(xml) AS
SELECT '<xml><name>himasnhu</name><age>24</age></xml>' FROM DUAL;
2条答案
按热度按时间lx0bsm1f1#
在Oracle 12.2中,您应该能够用途:
在早期版本中,您可以使用许多Java JSON packages中的一个来编写Java函数1(https://stackoverflow.com/q/1823264/1509264) 2(https://stackoverflow.com/q/28451370/1509264)以执行转换,然后使用
loadjava
实用程序(或CREATE JAVA
statement)将其加载到数据库中,然后使用该实用程序。更新:从表中获取数据
其中,对于样本数据:
输出:
| JSON|
| --------------|
| {“name”:“himasnhu”,“age”:“24”}|
fiddle
qnakjoqk2#
您可以使用XML to JSON过滤器将XML文档转换为JavaScript Object Notation(JSON)文档。有关所使用的Map约定的详细信息,请参见:Github- Mapping convention
配置
要配置XML到JSON过滤器,请指定以下字段:
姓名:
输入适当的名称以反映此筛选器的角色。
自动插入JSON数组边界:
选择此选项可尝试从传入的XML文档自动重构JSON数组。默认情况下,此选项处于选中状态。
[注意]如果传入的XML文档包含处理指令,则无论此选项设置如何,都会重新构造JSON数组。如果XML文档不包含,并且选择了此选项,则过滤器将尝试通过检查元素名称来猜测数组的组成部分。