10500.37を通貨としてOracleを使用して$ 10,500.37に変換する際に問題があります。私は現在、Oracle SQL開発者を使用しています。Oracleの生番号を変換する
これは私がやったことです:デュアルFROM
SELECT TO_NUMBER( '10500.37'、 '$ 10,500.37') 。
これを修正する方法やフォーマットモデルを正しく使用しているかどうかはわかりません。いくつかの助けを感謝します!
10500.37を通貨としてOracleを使用して$ 10,500.37に変換する際に問題があります。私は現在、Oracle SQL開発者を使用しています。Oracleの生番号を変換する
これは私がやったことです:デュアルFROM
SELECT TO_NUMBER( '10500.37'、 '$ 10,500.37') 。
これを修正する方法やフォーマットモデルを正しく使用しているかどうかはわかりません。いくつかの助けを感謝します!
数字を書式設定された文字列に変換しているので、to_number()
ではなく、to_char()
が必要です(逆の変換方法)。あなたが対処する必要があります最高値のための十分なリード9つのプレースホルダ(およびグループセパレータを)必要
SELECT to_char(10500.37, 'L999G990D00') FROM Dual;
TO_CHAR(1050
------------
$10,500.37
:
これは、1つの可能な書式モデルです。
数字形式のモデルare listed in the documentation。
私はグループセパレータ(コンマをハードコーディングするのではなく)と小数点の区切り文字(ピリオドをハードコーディングするのではなく)を使用しました。そして私はLを現地通貨記号に使用しました。これらのすべては、クライアントのNLS設定に依存します。
alter session set nls_territory='GERMANY';
SELECT to_char(10500.37, '$999,990.00') FROM Dual;
TO_CHAR(1050
------------
$10,500.37
:
alter session set nls_territory='UNITED KINGDOM';
SELECT to_char(10500.37, 'L999G990D00') FROM Dual;
TO_CHAR(10500.37,'L99
---------------------
£10,500.37
alter session set nls_territory='GERMANY';
SELECT to_char(10500.37, 'L999G990D00') FROM Dual;
TO_CHAR(10500.37,'L99
---------------------
€10.500,37
alter session set nls_territory='AMERICA';
SELECT to_char(10500.37, 'L999G990D00') FROM Dual;
TO_CHAR(10500.37,'L99
---------------------
$10,500.37
あなたは関係なく、NLSの設定の同じ出力を得るように、あなたはは、それらのいくつかまたはすべてのために、代わりに固定値を使用することもできます
より一般的に、通貨記号をセッションのNLSパラメータから独立させるために、 'to_char()'は引数 '' nls_currency = 'をとります。これは、通貨記号が$でない場合に必要です($は書式モデルで直接使用できるため、他の記号では使用できません)。 –
mathguy
はうまくいった!どうもありがとうございます! – Maha