本文共 2109 字,大约阅读时间需要 7 分钟。
-- Start
CREATE TABLE TEST( -- 语法:NUMBER [ (p [, s]) ] -- p(precision) 表示精度,精度是指从左边第一个非0数字开始到右边最后一个非0数字结束的所有数字的个数 -- p 可以是 1 到 38 的任意数字 -- s(scale) 表示标度,标度是指小数位的个数,s 可以是 -84 到 127 的任意数字 -- 如果一个数字超过了定义的精度,Oracle 会报错 -- 如果一个数字超过了定义的标度,Oracle 会自动四舍五入 COL1 NUMBER(7,2), -- 你可能已经注意到了,标度怎么可能是负值呢? -- 下面的列存储的是以万为单位的数字,万以下的数字将会被四舍五入,如 15000 --> 20000 COL2 NUMBER(10,-4), -- 你可能也已经注意到了,标度怎么可能大于精度呢?那么请你再次看看精度的定义。 -- 下面的列用来存储诸如 0.01234 等小数点后的第一个数字是0的数字 COL3 NUMBER(4,5), -- 下面的列定义了一个整数 COL4 NUMBER(4), -- 下面的列同样定义了一个整数 COL5 NUMBER(4, 0), -- 如果一个列没有指定精度和标度,表示最大精度和标度 COL6 NUMBER);-- 大多数国家都是用.作为整数与小数的分隔符-- 但是也有些奇葩国家如德国用,作为整数与小数的分隔符-- Oracle 允许我们修改 NLS_NUMERIC_CHARACTERS 来设置自己的分隔符-- SELECT * FROM NLS_SESSION_PARAMETERS WHERE PARAMETER='NLS_NUMERIC_CHARACTERS'INSERT INTO TEST VALUES (0.1, 15000, .0388, 5, 8, 88e3);INSERT INTO TEST VALUES (+.1, +15000, +0.0388, +5, +8, +88E+3);INSERT INTO TEST VALUES (-0.1, -15000, -.0388, -5, -8, -88e-3);
CREATE TABLE TEST( -- 语法:FLOAT [(p)] -- FLOAT 是 NUMBER 的一个子类型 -- FLOAT 非常诡异,没有充足的理由,千万不要使用它 -- Oracle 也不推荐我们使用 FLOAT,推荐使用 BINARY_FLOAT 和 BINARY_DOUBLE COL1 FLOAT(7));
CREATE TABLE TEST( -- BINARY_FLOAT 支持特殊值 BINARY_FLOAT_INFINITY 和 BINARY_FLOAT_NAN COL1 BINARY_FLOAT);INSERT INTO TEST VALUES (BINARY_FLOAT_INFINITY);INSERT INTO TEST VALUES (BINARY_FLOAT_NAN);INSERT INTO TEST VALUES (0.1f);INSERT INTO TEST VALUES (.2F);INSERT INTO TEST VALUES (+0.3f);INSERT INTO TEST VALUES (-.4F);INSERT INTO TEST VALUES (5e6f);INSERT INTO TEST VALUES (-6e+7f);INSERT INTO TEST VALUES (+7E-8F);
CREATE TABLE TEST( -- BINARY_DOUBLE 支持特殊值 BINARY_DOUBLE_INFINITY 和 BINARY_DOUBLE_NAN COL1 BINARY_DOUBLE);INSERT INTO TEST VALUES (BINARY_DOUBLE_INFINITY);INSERT INTO TEST VALUES (BINARY_DOUBLE_NAN);INSERT INTO TEST VALUES (0.1d);INSERT INTO TEST VALUES (.2D);INSERT INTO TEST VALUES (+0.3d);INSERT INTO TEST VALUES (-.4D);INSERT INTO TEST VALUES (5e6d);INSERT INTO TEST VALUES (-6e+7d);INSERT INTO TEST VALUES (+7e-8D);
-- 更多参见:
-- 声明:转载请注明出处
-- Last edited on 2015-07-04
-- Created by ShangBo on 2014-12-13
-- End