数値リテラル(Numberic Literals)は、固定小数点数と浮動小数点数の値を指定するために使用されます。本記事では主に整数リテラル、数値リテラル、および浮動小数点数リテラルについて説明します。
整数リテラル
式、条件式、SQL関数、およびSQLステートメントで整数が現れる場合、その値を指定するために整数(Integer)リテラルを使用する必要があります。
整数リテラルの最大保存精度は38ビットです。
以下の例は有効な整数リテラルの一部です。
8
+186
-15
数値リテラルと浮動小数点数リテラル
式、条件式、SQL関数、およびSQLステートメントで数値が現れる場合、その値を指定するために数値(Number)または浮動小数点数(Floating-Point)リテラルを使用する必要があります。
以下の例は有効な数値リテラルの一部です。
12
+6.87
0.5
25e-03
-9
以下の例は有効な浮動小数点数リテラルの一部です。
25f
+6.34F
0.5d
-1D
数値リテラルの最大保存精度は38ビットです。リテラルが要求する精度がNUMBER、BINARY_FLOAT、またはBINARY_DOUBLEが提供する精度よりも高い場合、OceanBaseデータベースはその値を切り捨てます。リテラルの範囲がNUMBER、BINARY_FLOAT、またはBINARY_DOUBLEがサポートする範囲を超える場合、OceanBaseデータベースはエラーをスローします。
数値リテラルの小数点区切り記号は常にピリオド(.)です。数値リテラルが期待される場所にテキストリテラルが指定されている場合、そのテキストリテラルは数値リテラルに変換されます。
次の例では、数値リテラル2.2に2を乗じた値と、テキストリテラル**'3.3'に2**を乗じた値を計算しています。
obclient> SELECT 2*2.2, 2*'3.3' FROM DUAL;
+-------+---------+
| 2*2.2 | 2*'3.3' |
+-------+---------+
| 4.4 | 6.6 |
+-------+---------+
1 row in set