プライマリ・コンテンツに移動

Oracle® Application Express APIリファレンス リリース5.1 E85937-02 |
| 目次 | 索引

前 | 次 |

# 15.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;

パラメータ

表15-1 DOES_EXISTファンクションのパラメータ

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

戻り値

表15-2 DOES_EXISTファンクションの戻り値

戻り値 | 説明
--- | ---
`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;