構文
to_char_number::=
用途
TO_CHAR
(数値)は、n
を、オプションの数値書式fmt
を使用してVARCHAR2
データ型の値に変換します。n
値には、NUMBER
、BINARY_FLOAT
またはBINARY_DOUBLE
型の値を指定できます。fmt
を指定しないと、n
の有効桁数を保持するために十分な長さのVARCHAR2
値に変換されます。
n
が負の場合、書式が適用された後で符号が適用されます。したがって、TO_CHAR(-1, '$9')
は、$-1ではなく-$1を戻します。
数値書式の詳細は、「書式モデル」を参照してください。
'nlsparam'
引数には、数値書式要素によって戻される次の文字を指定します。
小数点文字
桁区切り
各国通貨記号
国際通貨記号
この引数は、次の書式で指定します。
'NLS_NUMERIC_CHARACTERS = ''dg'' NLS_CURRENCY = ''text'' NLS_ISO_CURRENCY = territory '
文字d
およびg
は、それぞれ小数点文字および桁区切りを表します。これらは、異なるシングルバイト文字である必要があります。引用符付き文字列の中では、パラメータ値を囲む一重引用符を2つ使用する必要があります。通貨記号には10文字使用できます。
'nlsparam'
またはパラメータのいずれか1つを省略すると、このファンクションはセッションのデフォルト・パラメータ値を使用します。
例
次の文は、暗黙的な変換を使用して、文字列と数値を数値に結合します。
SELECT TO_CHAR('01110' + 1) FROM DUAL; TO_C ---- 1111
この例と、「TO_CHAR(文字)」の最初の例を比較してください。
次の例では、出力で通貨記号の左側に空白埋めが行われます。
SELECT TO_CHAR(-10000,'L99G999D99MI') "Amount" FROM DUAL; Amount -------------- $10,000.00- SELECT TO_CHAR(-10000,'L99G999D99MI', 'NLS_NUMERIC_CHARACTERS = '',.'' NLS_CURRENCY = ''AusDollars'' ') "Amount" FROM DUAL; Amount ------------------- AusDollars10.000,00-
オプションの数値書式fmt
では、L
は各国通貨記号を、MI
は後に付くマイナス記号(-)を表します。すべての数値書式要素のリストは、表3-17「FX書式モデル修飾子による文字データと書式モデルの一致」を参照してください。