37.6 DOES_EXISTファンクション

このファンクションは、指定されたパスが既存の値を指しているかどうかを判別します。

構文

APEX_JSON.DOES_EXIST (
   p_path             IN VARCHAR2,
   p0                 IN VARCHAR2 DEFAULT NULL,
   p1                 IN VARCHAR2 DEFAULT NULL,
   p2                 IN VARCHAR2 DEFAULT NULL,
   p3                 IN VARCHAR2 DEFAULT NULL,
   p4                 IN VARCHAR2 DEFAULT NULL,
   p_values           IN t_values DEFAULT g_values ) 
RETURN BOOLEAN;

パラメータ

パラメータ 説明
p_path p_valuesへの索引。
p[0-4] p_pathの各%NをpNで置き換え、i-th %sまたは%dをすべてp[i-1]で置き換えます。
p_values 解析されたJSONメンバー。デフォルトは、g_valuesです。

戻り値

戻り値 説明
TRUE 指定されたパスは既存の値を指しています。
FALSE 指定されたパスは既存の値を指していません

この例では、JSON文字列を解析し、パス下の値が含まれているかどうかを出力します。

DECLARE
    j apex_json.t_values;
BEGIN
    apex_json.parse(j, '{ "items": [ 1, 2, { "foo": true } ] }');
    IF apex_json.does_exist(p_path => 'items[%d].foo', p0 => 3, p_values => j)
    THEN
        dbms_output.put_line('found items[3].foo');
    END IF;
END;