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

パラメータ

表25-18 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が配列の場合)。参照先の値のみが含まれる配列(その型を数値に変換できる場合)。

表25-19 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