2017-12-13 20 views
1

これらの2つのコード結果が同じである理由はわかりません。私は文字列を連結するだけで引用符を付けると思った。なぜ最初は300.5100ではないのですか?とにかく私は第二のものが400.5であることを知っている。Oracle SQL TO_CHARファンクションの戻り値

Select to_char('300.5' + '100') From Dual; 

Select to_char(300.5 + 100) From Dual; 

答えて

3

連結は

'xxx' || 'yyy' 

あなたの例リテラルは、通常の数字として扱われ、その後の数値に変換することができますです、ありがとうございました。

4

SQLで文字列を連結するには、||を使用する必要があります。 +は数字を追加するためのものです。 '300.5' + '100'に合格しなかった場合は、エラーが発生します。次は、無効なSQLです:

select '300.5' + '100' 
from dual; 

しかし、入力パラメータOracleは暗黙的にちょうど二文のように、番号にこれらの文字列を変換し、それらを追加するようto_char()は番号を期待して。