21.18 GET_T_VARCHAR2ファンクション

このファンクションは、配列のvarchar2属性を返します。

構文

function get_t_varchar2 (
    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 wwv_flow_t_varchar2;

パラメータ

表21-19 GET_T_VARCHAR2ファンクションのパラメータ

パラメータ 説明

p_path

p_valuesへの索引。

p[0-4]

p_pathの各%NをpNで置き換え、i-th %sまたは%dをすべてp[i-1]で置き換えます。

p_values

解析されたJSONメンバー。デフォルトは、g_valuesです。

戻り値

配列メンバー値(参照先のt_valueが配列の場合)。参照先の値のみが含まれる配列(その型をvarchar2に変換できる場合)。

Raises

表21-20 GET_T_VARCHAR2ファンクションで発生するエラー

戻り値 説明

VALUE_ERROR

変換時のエラー。

この例では、JSONを解析し、位置1にある値を出力します。

declare
    j          apex_json.t_values;
    l_elements apex_t_varchar2;
begin
    apex_json.parse(j, '{ "foo": ["one", "two"], "bar": "three" }');
    l_elements := apex_json.get_t_varchar2 (
                      p_values => j,
                      p_path   => 'foo' );
    for i in 1 .. l_elements.count loop
        sys.dbms_output.put_line(i||':'||l_elements(i));
    end loop;
    l_elements := apex_json.get_t_varchar2 (
                      p_values => j,
                      p_path   => 'bar' );
    for i in 1 .. l_elements.count loop
        sys.dbms_output.put_line(i||':'||l_elements(i));
    end loop;
end;

Output:
  1:one
  2:two
  1:three