37.18 GET_T_NUMBERファンクション

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

構文

APEX_JSON.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 apex_t_number;

パラメータ

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

戻り値

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

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