大きな記憶領域を占める浮動小数点型の値を、小さな記憶領域の場所に代入するとき、その値が小さな記憶領域の場所に記録できない値であればエラーとなります。
次に例を示します。create table mytable (r REAL, d DOUBLE PRECISION);
0 rows inserted/updated/deleted
INSERT INTO mytable (r, d) values (3.4028236E38, 3.4028235E38);
ERROR X0X41: The number '3.4028236E38' is outside the range for
the data type REAL.
浮動小数点型の値を、INTEGERの列に記録できます。小数点以下の部分は切り捨てられます。次に例を示します。INSERT INTO mytable(integer_column) values (1.09e0);
1 row inserted/updated/deleted
SELECT integer_column
FROM mytable;
I
---------------
1
整数型には、その範囲内で小数のある数値を置くことができますが、精度は失われます。
小数のある数値型には、その精度の範囲内にある整数を置くことができます。例を挙げます。ij> insert into mytable (decimal_column)
VALUES (55555555556666666666);
ERROR X0Y21: The number '55555555556666666666' is outside the
range of the target DECIMAL/NUMERIC(5,2) datatype.
大きな記憶領域を占める整数の値を、小さな記憶領域に代入するとき、その値が小さな記憶領域では記録できないとき、エラーとなります。以下に例を挙げます。INSERT INTO mytable (int_column) values 2147483648;
ERROR 22003: The resulting value is outside the range for the
data type INTEGER.
NUMERICの値から小数以下を取り除く場合、は切捨てを行います。