【问题标题】:oralce apex_json to extract fieldsoracle apex_json 提取字段
【发布时间】:2019-08-06 17:14:21
【问题描述】:

我的系统中安装了带有 Apex 5 的 Oracle 11g。我正在寻找 field1 的基本提取:total from the below json.

DECLARE 
    j apex_json.t_values; 
BEGIN 
    apex_json.parse(j, '{"total":83,"netAmmount":65}'); 
    DBMS_OUTPUT.put_line('Total   : ' ||
    APEX_JSON.get_number( 'total'));
    DBMS_OUTPUT.put_line('netAmmount: ' ||
    APEX_JSON.get_number( 'netAmmount'));
END;

能否请您告诉我如何仅使用 oracle apex 提取字段 1 和 2。

【问题讨论】:

    标签: oracle oracle11g oracle-apex oracle-apex-5.1


    【解决方案1】:

    在您的情况下,JSON 值没有数组,因此无需使用 apex_json.t_values 可以替换为 varchar2 类型的局部变量:

    DECLARE 
        j    varchar2(32767) := '{"total":83,"netAmmount":65}'; 
    BEGIN 
        APEX_JSON.parse( j ); 
        DBMS_OUTPUT.put_line('Total      : '||APEX_JSON.get_number( path => 'total' ) );
        DBMS_OUTPUT.put_line('Net Amount : '||APEX_JSON.get_number( path => 'netAmmount' ) );
    END;
    /
    

    如果字段的值是字符串,则将APEX_JSON.get_number替换为APEX_JSON.get_varchar2

    【讨论】:

    • 感谢 Özhan 先生。但由于某种原因,path=> 不起作用。我删除并尝试了它,它起作用了。你能告诉我如何更新现有 json 中的这些值吗?如果有一个 json {"total":23,"netAmmount":45,"quantity":12} ,我如何将这些结果更新到现有的 json 中?
    • 不客气@user1720827。拆分后可以使用APEX_JSON.open_objectAPEX_JSON.write方法。
    猜你喜欢
    • 1970-01-01
    • 2021-04-23
    • 2013-11-08
    • 1970-01-01
    • 2018-10-15
    • 2011-09-13
    • 2015-12-21
    • 2019-07-22
    • 2017-06-14
    相关资源
    最近更新 更多