博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle 内置数据类型 -- 数值
阅读量:4050 次
发布时间:2019-05-25

本文共 2109 字,大约阅读时间需要 7 分钟。

-- Start

NUMBER

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);

FLOAT

CREATE TABLE TEST(  -- 语法:FLOAT [(p)]    -- FLOAT 是 NUMBER 的一个子类型  -- FLOAT 非常诡异,没有充足的理由,千万不要使用它  -- Oracle 也不推荐我们使用 FLOAT,推荐使用 BINARY_FLOAT 和 BINARY_DOUBLE  COL1 FLOAT(7));

BINARY_FLOAT

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);

BINARY_DOUBLE

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

你可能感兴趣的文章
如何利用Datawindow.net提取Sequence数据
查看>>
小诗,纪念我即将到来的结婚两周年
查看>>
自勉文[出处不详,待考证]
查看>>
中国行政级别
查看>>
国家公务员的级别
查看>>
悼念地震死难者:使整个网页变黑白色(灰色)的特效代码
查看>>
asp.net优化完全技巧
查看>>
道 经
查看>>
德 经
查看>>
藏太甲于桐宫-从电视剧康熙王朝中学到的历史知识
查看>>
开发过程中的沟通问题
查看>>
“众”字透出的哲学
查看>>
恋爱爱情婚姻家庭与炒股票
查看>>
答非所问的古今中外名人小笑话幽默
查看>>
周易、命理、风水、姓名与命运交流周易研究心得:姓名学
查看>>
解决asp.net中tabstrip不能点击的问题
查看>>
PB中使用blob进行文件读取的性能问题
查看>>
DataWindow.net中如何实现鼠标划过时变颜色
查看>>
Datawindow.net中设置字符串的显示,超过长度部分显示为。。。
查看>>
PowerBuilder中使用带返回的powerobjectparm
查看>>