1

Application Express と Jquery を使用しています。私のフィールドに 0.5 の値が含まれている場合、オラクルはそれをゼロなしで .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}]}

すべての 10 進フィールドで必要な場合、json_from_sql に先行ゼロを入れるように指示する方法はありますか?

4

2 に答える 2

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 ワークショップ > SQL コマンドから選択を実行すると、ゼロも表示されません。
スリル満点ではないことは承知していますが、数字の周りに to_char を配置することを検討してください。

v_sql := 'select TO_CHAR(0.5,''FM9990D0'') xyz from dual';
于 2013-03-11T11:03:45.920 に答える
0

クライアント側で文字列置換を行うことでこれを解決しました

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

parseJSON を呼び出す前に

于 2013-03-11T23:46:10.137 に答える