123.23 => ONE HUNDRED AND TWENTY-THREE DOLLARS AND TWENTY-THREE

 

SELECT TO_CHAR(TO_DATE(TRUNC(123.23), 'J'), 'JSP') || ' DOLLARS AND ' || TO_CHAR(TO_DATE(TO_NUMBER(SUBSTR (123.23, INSTR (123.23, '.') + 1)), 'J'),'JSP')||' CENTS'
  FROM DUAL;

 

但是, 如果小數位數大於兩位, 結果會回傳阿拉伯數字....


@20160913

有朋友發現太大的數字會出現錯誤訊息:

ORA-01830: date format picture ends before converting entire input string

參考下方的連結, 其中說明到這個方式只能處理到 5373484.

http://viralpatel.net/blogs/convert-number-into-words-oracle-sql-query/

如果需要處理更大的數字, 就必須使用 Function 來處理, 一樣可參考連結中的做法 :)

 

arrow
arrow
    全站熱搜

    Aloz 發表在 痞客邦 留言(1) 人氣()