21.17 GET_T_NUMBERファンクション

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

構文

function get_t_number (
 	    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_number;

パラメータ

表21-17 GET_T_NUMBERのパラメータ

パラメータ 説明

p_path

p_valuesへの索引。

p[0-4]

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

p_values

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

戻り値

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

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

戻り値 説明

VALUE_ERROR

変換時のエラー。

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

    declare
         j          apex_json.t_values;
         l_elements apex_t_number;
     begin
         apex_json.parse(j, '{ "foo": [111, 222], "bar": 333 }');
         l_elements := apex_json.get_t_number (
                           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_number (
                           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:111
     2:222
     1:333