文字から数値への暗黙の変換が有効な結果になるのは、文字列が数値を表わしている場合のみです。
数のオペランドが必要な式にCHARまたはVARCHAR文字列がある場合、その文字列は書式化された数として読み取られ、FLOATのデフォルトの書式でFLOAT値に変換されます。
暗黙の書式を上書きするには、FORMAT句を使用します。
または、FLOATのデフォルト形式を変更するには、REALエレメントの設定を、SDF(データ形式仕様)ファイルで変更することができます。デフォルトのデータ型の形式、SDFファイル、FORMAT句の詳細について、データ型の形式および形式句を参照してください。
数値オペランドが必要な式でCLOBタイプを使用する場合、まずCLOBをCHARまたはVARCHARに明示的に変換する必要があります。
空の文字列(長さがゼロ)または埋め込み文字だけで構成されている文字列は、数値がゼロであるとみなされます。
FLOATのデフォルトの書式が-9.99E-99の場合、以下のようになります。
式 | 変換後 | 結果 |
---|---|---|
1.1*’$20.00’ | 1.10E 00*2.00E1 | 2.20E 01 |
’2’+’2’ | 2.00E 00+2.00E 00 | 4.00E 00 |
’A’ + 2 | ---------- | エラー |
数値データ型の列またはパラメータが文字列値で指定されている場合、その文字列も、書式化された数値であるとみなされます。例えば、次のINSERT文は、Salaryを数値の文字列として指定しています。
INSERT INTO Employee (EmpNo, Name, Salary) VALUES (10022, 'Clements D', '$38,000.00');
数値型への変換は、編集用の記号を取り除きます。選択された時に、給与データは、CREATE TABLE文中でSalary用にFORMAT句で許可された特殊文字だけを含みます。FORMAT句が'G-(9)D9(2)'の場合、出力は以下のようになります。
Salary --------- 38,000.00
FORMAT句が‘G-L(9)D9(2)’の場合、出力は以下のようになります。
Salary ---------- $38,000.00