我正在使用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输入前导零?
答案 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之前