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

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

前 | 次 |

# 15.7 FIND_PATHS_LIKEファンクション

このファンクションは、指定されたパターンに一致する`p_values`へのパスを戻します。

構文

    APEX_JSON.FIND_PATHS_LIKE (
        p_return_path      IN VARCHAR2,
        p_subpath          IN VARCHAR2 DEFAULT NULL,
        p_value            IN VARCHAR2 DEFAULT NULL,
        p_values           IN t_values DEFAULT g_values )
    RETURN apex_t_varchar2;

パラメータ

表15-3 FIND_PATHS_LIKEファンクションのパラメータ

パラメータ | 説明
--- | ---
`p_return_path` | 戻りパスの検索パターン。
`p_subpath` | `p_return_path`下の検索パターン(オプション)。
`p_value` | 値の検索パターン(オプション)。
`p_values` | 解析されたJSONメンバー。デフォルトは、`g_values`です。

戻り値/発生するエラー

表15-4 FIND_PATHS_LIKEファンクションの戻り値および発生するエラー

戻り値 | 説明
--- | ---
`apex_t_varchar2` | パターンに一致するパスの表。
`VALUE_ERROR` | `p_values(p_path)`が配列またはオブジェクトではない場合、このエラーが発生します。

例

この例では、JSON文字列を解析し、パターンに一致するパスを検索し、パス下の値を出力します。

    DECLARE
        j            apex_json.t_values;
        l_paths apex_t_varchar2;
    BEGIN
        apex_json.parse(j, '{ "items": [ { "name": "Amulet of Yendor", "magical": true }, '||
                                         { "name": "Slippers",  "magical": "rather not" } ]}');
        l_paths := apex_json.find_paths_like (
            p_values         => j,
            p_return_path => 'items[%]',
            p_subpath       => '.magical',
            p_value           => 'true' );
        dbms_output.put_line('Magical items:');
        for i in 1 .. l_paths.count loop
            dbms_output.put_line(apex_json.get_varchar2(p_values => j, p_path => l_paths(i)||'.name'));
        end loop;
    END;