数値を文字列に変換していることに注意してください。数字には「、」、「。」の意味はありません。または何か-それは数字です。
秘訣はTO_CHAR
を取得することです 内部数値を必要な文字列表現に変換する関数。基数ポイント(小数点)を正しく取得し、パディングを処理するなど、心配する必要のある問題がいくつかあります。
実例は次のとおりです:
SELECT to_char(0.00235,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
0,00235
SELECT to_char(156.45823,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
156,45823
SELECT to_char(-0.0235,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
-0,0235
SELECT to_char(-156.45623,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
-156,45623
SELECT to_char(123456789.45623,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
123456789,45623
マスクの関連部分:
FM
Oracleが通常数字を埋めるために使用する先頭と末尾の空白をトリミングするために使用されます。
D
NLS設定に応じて、は基数ポイントです。
NLS_NUMERIC_CHARACTERS ...
はローカルNLS設定のオーバーライドです。ロケールで小数点以下のコンマが使用されている場合、これは必要ない場合がありますが、たとえば北米の設定を使用してデータベースでこの動作を強制する方法です。