oracle number整数,Oracle number类型的语法和用法

oracle number整数,Oracle number类型的语法和用法Oraclenumber类型的语法很简单,就是:number(p,s)p,s都是可选的,假如都不填,p默认为38,s默认为-48~127。1.精度(precision),或总位数。默认情况下,精度为38位,取值范围是1~38之间。也可以用字符*表示38。2.小数位置(scale),或小数点右边的位数。小数位数的合法值为-48~127,其默认值取决于是否指定了精度。如果没有知道精度,小数位数则默…

大家好,又见面了,我是你们的朋友全栈君。

Oracle number类型的语法很简单,就是:

number(p,s)

p,s都是可选的,假如都不填,p默认为38,s默认为-48~127。

bb

1. 精度(precision),或总位数。默认情况下,精度为38位,取值范围是1~38之间。也可以用字符*表示38。

2.

小数位置(scale),或小数点右边的位数。小数位数的合法值为-48~127,其默认值取决于是否指定了精度。如果没有知道精度,小数位数则默认有最大的取值区间。如果指定了精度,小数位数默认为0(小数点右边一位都没有)。例如,定义为NUMBER的列会存储浮点数(有小数),而NUMBER(38)只存储整数数据(没有小数),因为在第二种情况下小数位数默认为0.

如下SQL语句:

create table t ( msg varchar2(12.), num_col number(5,2) );

insert into t (msg,num_col) values ( ‘123.456’, 123.456

);//执行成功,保存的是123.46

insert into t (msg,num_col) values ( ‘1234’, 1234

);//执行失败,要保留2位小数,那么整数位最多3位,现在是4位。

如果scale是负数怎么样,表示左边整数位舍入几位:

create table t ( msg varchar2(12.), num_col number(5,-2) );

insert into t (msg,num_col) values ( ‘123.45’, 123.45

);//执行成功,保存的是100

insert into t (msg,num_col) values ( ‘123.456’, 123.456

);//执行成功,保存的是100

其他数据类型:

1. NUMERIC(p,s):完全映射至NUMBER(p,s)。如果p未指定,则默认为38.

2. DECIMAL(p,s)或DEC(p,s):完全映射至NUMBER(p,s)。如果p为指定,则默认为38.

3. INTEGER或INT:完全映射至NUMBER(38)类型。

4. SMALLINT:完全映射至NUMBER(38)类型。

5. FLOAT(b):映射至NUMBER类型。

6. DOUBLE PRECISION:映射至NUMBER类型。

7. REAL:映射至NUMBER类型。

性能考虑:

一般而言,Oracle NUMBER类型对大多数应用来讲都是最佳的选择。不过,这个类型会带来一些性能影响。Oracle

NUMBER类型是一种软件数据类型,在Oracle软件本身中实现。我们不能使用固有硬件操作将两个NUMBER类型相加,这要在软件中模拟。不过,浮点数没有这种实现。将两个浮点数相加时,Oracle会使用硬件来执行运算。

换而言之,将一些列的number列相加,没有将一系列float列相加来得快。因为float列的精度低很多,一般是6~12位。

比如:select sum(ln(cast( num_type as binary_double ) )) from t

比:select sum(ln(cast( num_type) )) from t 要快很多。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163932.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 我做游戏开发这八年[通俗易懂]

    我做游戏开发这八年简述与编程擦肩而过从图像设计到痴迷编程入门编程沉迷编程Java的图形编程就职游戏开发2011,第一次面试&实习生第一个游戏2012年,第二个重量级IP游戏2013年,转战手游与创业2014-2015,第一次创业2015,西山居和多益网络2016-2018,第二次创业2018至今,360游戏艺术(岂凡网络)技术总监简述这篇文章并不是想教会大家如何开发游戏,更不能教大家如…

    2022年4月10日
    38
  • MyBatis中的JdbcType映射介绍

    Java项目涉及到数据库交互,以往常用的是JDBC,现在则有Hibernate、Mybatis等这些持久化支持。 项目中用到了MyBatis,和JDBC最显著的区别,就是SQL语句配置化,通过xml文件定义SQL语句,当然JDBC也可以将SQL配置化,需要定制开发,MyBatis则直接支持这种方法。 官方对于MyBatis的介绍,MyBatisisafirstclas…

    2022年4月5日
    83
  • python+opencv图像模板匹配—多模板匹配

    python+opencv图像模板匹配—多模板匹配

    2021年10月6日
    60
  • Git配置账号信息

    Git配置账号信息在前面我们已经简单的说了一下Git是什么,用来干嘛什么,他与SVN的区别,以及它的安装。今天我们接着讲,当第一次下载后我们如何配置自己Git账号信息(这里可以是Github也可以是国内的码云账号等等),下面我们开始主题:这里大概有两种方式一种是通过全局配置信息让所有的项目都使用这个账号,另一种是在指定项目下配置单独的信息默认在我们第一次下载后Git后我们最好是配置到自己…

    2022年4月12日
    43
  • Android Drawable 与 LayerList综合汇总

    Android Drawable 与 LayerList综合汇总

    2022年1月25日
    36
  • Spring中@Transactional事务回滚(含实例详细讲解,附源码)

    Spring中@Transactional事务回滚(含实例详细讲解,附源码)

    2020年11月12日
    155

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号