获取apex_util.json_from_sql以返回0.5

时间:2013-03-11 06:35:52

标签: jquery json oracle oracle-apex

我正在使用Application Express和Jquery。如果我的字段包含值0.5,则Oracle将其返回为.5而不为零。这会导致jQuery JSON解析器出现阻塞。

declare v_sql varchar2(4000);

begin
    v_sql := 'select 0.5 xyz from dual';
    apex_util.json_from_sql (v_sql);
end;

返回:

{"row":[{"XYZ":.5}]}

我想:

{"row":[{"XYZ":0.5}]}

如果所有十进制字段都需要,是否有某种方法可以指示json_from_sql输入前导零?

2 个答案:

答案 0 :(得分:2)

据我所知,json_from_sql没有选项,但官方文档中仍未详细记载。可能是字段上发生了隐式的to_char,删除了前导零 这是htmldb_util的规范,没有注释。

procedure json_from_sql (
    sqlq     in varchar2 default null,
    p_sub    in varchar2 default 'N',
    p_owner  in varchar2 default null);

从SQL研讨会执行select时> SQL命令零也不显示 我知道这并不令人兴奋,但你可以考虑在你的数字周围添加一个to_char:

v_sql := 'select TO_CHAR(0.5,''FM9990D0'') xyz from dual';

答案 1 :(得分:0)

我通过在客户端进行字符串替换来解决这个问题

json = json.replace(/\:\./g, ":0.");

在调用parseJSON之前