0
数字の変換にフォーマットマスクを設定して、何かに関わらずカンマを常に「小数点区切り」にするセッションで設定します。言い換えれば、私は、このフォーマットマスクが常にOracleデータベースの任意のローカライゼーションで勝つようにすることを目指しています。カンマをスクリプトの小数点区切りにして、Oracleデータベースの任意のローカライゼーションで実行することを指定しました
私のセッションは私がtheeseコマンドを発行すると、私が取得
NLS_NUMERIC_CHARACTERS=',.'
を設定しました:
SELECT TO_CHAR(100.34,'fm099999999999999D00') FROM DUAL;
000000000000100,34 -- as desired
SELECT TO_CHAR(100.34,'fm099999999999999.00') FROM DUAL;
000000000000100,34 -- as desired
SELECT TO_CHAR(100.34,'fm099999999999999,00') FROM DUAL;
000000000000001,00 -- NOT What I want!! because ',' is for thousands
変更することなく、「桁区切り」と「コンマ」を強制する方法はあります現在のセッション?
あなたの第三の試みで、問題は2,000,000で、Oracleは表示しないということですTHOUSANDSセパレータとして、それは単に「グループ」セパレータとして表示されます。インド( "lakh")表記法では、同じ数は20,00,000です。異文化間で異なる数字をグループ化すると(整数の場合)、オラクルはあなたが話すことを何でもします。私の答えと同じように、数字をグループ化する必要がある場合(任意のマスクに従って)、明示的ではなくGを使用します。 - 次にNLS_NUMERIC_CHARACTERSを明示的に渡すか、セッションのデフォルトを使用します。 – mathguy