21.33 TO_XMLTYPE_SQLファンクション

このファンクションは、JSON形式のvarchar2またはCLOBを解析し、XMLTypeに変換します。このファンクション・オーバーロードには、SQL問合せ内から呼び出し、LAXモードでJSON解析を実行できるように、VARCHAR2としてp_strictパラメータが含まれています。

構文

function to_xmltype_sql (
    p_source   IN VARCHAR2,
    p_strict   IN BOOLEAN DEFAULT 'Y' )
RETURN sys.xmltype;

function to_xmltype_sql (
    p_source   IN CLOB,
    p_strict   IN BOOLEAN DEFAULT 'Y' )
RETURN sys.xmltype;

パラメータ

表21-42 TO_XMLTYPE_SQLファンクションのパラメータ

パラメータ 説明

p_source

JSONソース(VARCHAR2またはCLOB)

p_strict

Y (デフォルト)の場合、厳密なJSONルールを強制します

戻り値

JSONデータのxmltype表現

この例のSQL問合せでは、JSONをXMLTYPEに変換し、XMLTABLE SQLファンクションを使用してデータを抽出しています。p_strict引数をNに設定しているため、JSONをLAXモードで正常に解析できます。ただし、アイテム属性は引用符で囲んでいません。

select
    attr_1
from
    xmltable(
    '/json/items/row'
    passing apex_json.to_xmltype_sql( '{ items: [ 1, 2, { "foo": true } ] }', p_strict => 'N' )
    columns
    attr_1 varchar2(20) path 'foo/text()'
 );