37.20 GET_VALUEファンクション
このファンクションはt_valueを戻します。
構文
APEX_JSON.GET_VALUE (
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 t_value;
パラメータ
パラメータ | 説明 |
---|---|
p_path |
p_values への索引。
|
p[0-4] |
p_path の%N はそれぞれpN に置換され、i-th% または%d はそれぞれp[i-1] に置換されます。
|
p_values |
解析されたJSONメンバー。デフォルトは、g_values です。
|
戻り値/発生するエラー
戻り値 | 説明 |
---|---|
t_value |
指定されたパスの位置にあるt_value 。データが見つからない場合、レコード属性はnullです。
|
VALUE_ERROR |
p_values(p_path) が配列またはオブジェクトではない場合、このエラーが発生します。
|
例
この例では、JSON文字列を解析し、位置にある値の属性を出力します。
DECLARE
j apex_json.t_values;
v apex_json.t_value;
BEGIN
apex_json.parse(j, '{ "foo": 3, "bar": [1, 2, 3, 4] }');
v := apex_json.get_value(p_path=>'bar[%d]',p0=> 2,p_values=>j); -- returns the t_value for bar[2]
dbms_output.put_line(v.number_value); -- 2
v := apex_json.get_value(p_path=>'does.not.exist',p_values=>j);
dbms_output.put_line(case when v.kind is null then 'not found!' end);
END;
親トピック: APEX_JSON