oracle使用json,plsql中怎样使用json啊?

好东西,马上项目上就可能遇到,我以前一直用plsql解析xml:

比如:

WITH T AS

(SELECT XMLTYPE('

DM1INTO_FIX_LINE_ANS11800011123456781110111

') C

FROM DUAL)

SELECT ID,A, B

FROM T,

XMLTABLE('/DBSET/ROW/COL' PASSING T.C COLUMNS

ID VARCHAR2(40) PATH '@COLID',

A VARCHAR2(40) PATH '@NAME',

B VARCHAR2(40) PATH '/') X;

with q as(select xmltype('<?xml version="1.0"?>

Po_2

Nance

2 Avocet Drive

3 Avocet Drive

Redwood Shores

CA

Po_3

Smith

5 West Drive

6 Avocet Drive

San Francisco

中国

') the_xml from dual)

select x.street1,  x.street2, x.city, x.state

from q,  --your table here

XMLTable(

'PO_LIST/PO/SHIPADDR'   --note I have wrapped POs in a PO_LIST tag

passing q.the_xml  --your clob here

columns

street1 varchar2(400) path 'STREET[1]',

street2 varchar2(400) path 'STREET[2]',

city varchar2(400) path 'CITY',

state varchar2(400) path 'STATE'

) x

with t as (

select xmltype('

PM1SelftestStatusCompletedPM1SelftestStatusCompletedPM1SelftestStatusCompletedPM1SelftestStatusCompleted

')

c from dual

)

select X.DIRID,  X.Device, X.Task,X.DataType, X.Value

from t,

XMLTable(

'/DBSET/ROW'

passing t.c

columns

DIRID varchar2(40) path 'COL[1]',

Device varchar2(40) path 'COL[2]',

Task varchar2(40) path 'COL[3]',

DataType varchar2(40) path 'COL[4]',

Value varchar2(40) path 'COL[5]'

) x;

with t as (

select '

PM1SelftestStatusCompleted

'

c from dual

)

select

extractvalue(xmltype(c),'/DBSET/ROW/COL[1]') as DIRID ,

--   extractvalue(xmltype(c),'/DBSET/ROW/COL[1]/@NAME') ,

extractvalue(xmltype(c),'/DBSET/ROW/COL[2]')  Device,

extractvalue(xmltype(c),'/DBSET/ROW/COL[3]')  Task,

extractvalue(xmltype(c),'/DBSET/ROW/COL[4]')  DataType,

extractvalue(xmltype(c),'/DBSET/ROW/COL[5]')  Value

from  t;

不知道json解析速度如何,理论上应该比xml快很多;

但是oracle没有自带的json解析,如果用这个第三方的,不知道功能是否强大,调用是否方便,效率高否;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值