の書式コードに00.0000
は、 の小数点第 4 位が含まれている必要があり23.234
ます。それはいつも私のために働いています。オラクル11を使用しています。
私がやろうとしたときに私が得た問題CAST(TO_CHAR(23.234, '00.0000') AS CHAR(7))
はエラーでしたORA-25137: Data value out of range
。TO_CHAR
これは、 が長さ 8 の文字列を返すために発生します。
SQL> SELECT '[' || TO_CHAR(23.234, '00.0000') || ']' FROM DUAL
'['||TO_CH
----------
[ 23.2340]
TO_CHAR
数値が負の場合は先頭にスペースを残し、負の場合はそこにマイナス記号を置きます。FM
フォーマット文字列で修飾子を使用すると、先頭のスペースを取り除くことができます。
SQL> SELECT '[' || TO_CHAR(23.234, 'FM00.0000') || ']' FROM DUAL
'['||TO_CH
----------
[23.2340]
これはすべて、「代わりにこれを試してください」という長い方法です。唯一の変更はFM
、TO_CHAR
フォーマット文字列です。
CREATE OR REPLACE VIEW viewA ("col1", "col2") AS
SELECT DISTINCT
CAST("col1" AS CHAR(1)),
CAST(to_char("col2",'FM00.0000') AS char(7))
FROM tableA
最後の注意: 列名を二重引用符で囲むと、大文字と小文字が区別され、多くの場合、問題が発生します。可能であれば、二重引用符を失うことをお勧めします。