首页 > 数据库 >Oracle NUMBER类型可以接受的最大值是多少?

Oracle NUMBER类型可以接受的最大值是多少?

时间:2024-10-16 16:59:44浏览次数:7  
标签:INSERT 数字 最大值 数据类型 NUMBER number Oracle

首发微信公众号:SQL数据库运维

原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247486498&idx=1&sn=9c2cc6490d3799117366910ef95fbd42&chksm=ea375852dd40d14465adc718841c288fa8941aaf772a8957af9c4107e2d70841b80e5c9a3d98&token=74830047&lang=zh_CN#rd


Oracle NUMBER类型简介

Oracle NUMBER 数据类型用于存储可能为负值或正值的数值。以下说明了NUMBER数据类型的语法:

NUMBER[(precision [, scale])]

Oracle NUMBER数据类型具有以下精度和尺度。

  • 精度是一个数字中的位数。范围从1到38。

  • 尺度是数字中小数点右侧的位数。范围从-84到127。

例如,数字1234.56的精度是6,尺度是2。所以要存储这个数字,需要定义为:NUMBER(6,2)。

精度和尺度都是十进制数字,可选。如果跳过精度和小数位,Oracle使用数字的最大范围和精度。

例如,下面的表格定义了一个可以存储数值的数字,其数值范围和精度都是最大的:

NUMBER

以下语法定义了一个定点数字:

NUMBER(p,s)

要定义一个整数,可以使用下面的形式:

NUMBER(p)

上面表示一个精度为p,尺度为零的定点数,相当于如下:

NUMBER(p,0)

Oracle允许规模为负数,例如,下面的数字将数值四舍五入到数百。

NUMBER(5,-2)

请注意,如果在NUMBER(p,s)列中插入数字,并且数字超过精度p,则Oracle将发出错误。但是,如果数量超过尺度s,则Oracle将对该值进行四舍五入。


Oracle NUMBER数据类型示例

以下语句创建一个名为number_demo的表,该表由Number数字列组成:

CREATE TABLE number_demo ( number_value NUMERIC(6, 2) );

以下INSERT 语句向number_demo表中插入三个数字:

INSERT INTO number_demoVALUES(100.99);
INSERT INTO number_demoVALUES(90.551);
INSERT INTO number_demoVALUES(87.556);

在上面的示例中,

  • 第一个值被插入成功,因为该数字在列的定义范围内。

  • 第二个值向下取整,第三个值向上取整,因为该列只接受带有两个小数点的数字。

 以下示例插入number_value可以接受的最大值和最小值:

INSERT INTO number_demo
VALUES(9999.99);

INSERT INTO number_demo
VALUES(-9999.99);

以下示例会导致错误,因为插入的值超出了为列定义的精度。

INSERT INTO number_demo
VALUES(-10000);

--该值被四舍五入,因为数字超过了为列定义的精度。
INSERT INTO number_demo
VALUES(9999.999);


 

Oracle NUMBER数据类型别名

Oracle包含许多可用于定义数字列的别名,如下表所示:

 请注意,INT,SMALLINT,NUMERIC 和DECIMAL只是别名。它们不是真正的数据类型。Oracle在内部将这些别名映射到相应的NUMBER 数据类型。


标签:INSERT,数字,最大值,数据类型,NUMBER,number,Oracle
From: https://www.cnblogs.com/since-1995/p/18470321

相关文章

  • Oracle 19c OCP 认证考试 083 题库(第2题)- 2024年修正版
    【优技教育】Oracle19cOCP083题库(Q2题)-2024年修正版考试科目:1Z0-083考试题量:85道(线下)通过分数:57%以上考试时间:150min(线下)本文为(CUUG原创)整理并解析,转发请注明出处,禁止抄袭及未经注明出处的转载。原文地址:http://www.cuug.com.cn/ocp/083kaoshitiku/38531279872.ht......
  • oracle 增删改查字段
    在Oracle数据库中,增删改查(CRUD)操作可以通过SQL语句来完成。以下是针对字段(列)的增删改查操作:增加字段:ALTERTABLE表名ADD列名数据类型[约束];删除字段:ALTERTABLE表名DROPCOLUMN列名;修改字段数据类型或约束:ALTERTABLE表名MODIFY列名新数据类型[新约束];查询......
  • ef8解决sql2008R2不支持fetch命令问题:optionsBuilder.UseSqlServer(sConn, options =>
    netcoreer8.sql2012支持fetch命令,sql2008r2不支持fetch命令,调用ef的skip(100).take(10)时,会报错:ERROR[.NETTPWorker](D:\Design\CSharp\海宏发票查重报销管理\iPublic\公共\BaseApiController.cs:114)-资料维护.Pages.CommBase.FaPiaoTypeApiController.query::'OFFSET......
  • 实战!oracle 11g一键安装脚本分享
    分享一个常用的数据库一键安装脚本,大家可以从我的网盘进行下载链接:https://pan.baidu.com/s/1iV-0zeXrwhJxJcm9qA_P_g提取码:apbc脚本内容:#!/bin/bash#一键安装oracle数据库#修改主机名hostnamectlset-hostnamemyoracle#添加主机名与IP对应记录public_ip=$(hostn......
  • Leetcode 贪心算法之Largest Number
    题目描述给定一组非负整数nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。实例示例1:输入:nums=[10,2]输出:“210”示例2:输入:nums=[3,30,34,5,9]输出:“9534330”思路分析利用贪......
  • Oracle 删除表中的重复数据
    删除表中某列重复的数据,只保留最新或者最旧的一条;替换下列代码中的中文后即可使用。DELETEFROM 去重复的表WHERE IDIN( SELECT ID FROM (SELECTeol.*,row_number()over(partitionBYeol.去重字段ORDERBYeol.排序字段DESC)rn FROM去重复的表eol......
  • 【Oracle DB故障分享】分享一次由于SGA设置太小导致的DP备份失败
    Listitem今天给客户做Oracle例行数据库健康巡检,过程中检出一些备份异常,分享如下。排查问题:打开DP备份软件,随即弹出如下提示:登录DP,查看备份情况:发现从10/6开始,DP备份就没有完全成功,部分文件备份失败:OracleRecoveryBackupCatalog“Oracle8”一直备份失败:查看DP日......
  • 关于使用plsql操作oracle的一点小技巧和几个常用的查询语句BU
    plsql是什么:就是这个,专门操作oracle的一个工具,好用还免费。创建一个测试表:createtableStudent(Idnumbernotnull,Namevarchar(20),Agenumber,Gradenumber,Gendervarchar(2))里面的varchar2()是oracle自己专门的字符类型,用就行了。光标移到表上,右键选择Descr......
  • Oracle 11g streams部署
    Oracle11gstreams部署环境 源服务器目标服务器系统版本CentOSLinuxrelease7.3.1611(Core)CentOSLinuxrelease7.3.1611(Core)主机名sht-sgmhadoopdn-02sht-sgmhadoopdn-03数据库版本EE11.2.0.4.0EE11.2.0.4.0......
  • leetcode 179. Largest Number
    179.LargestNumber要比较拼接以后谁应该放在前面,先试着把他们拼起来就行了然后因为正着拼和反着拼,长度一致,所以自带的string比较函数会严格比较他们的大小关系,不会因为字符串长度而误判boolcmp(constint&a,constint&b);classSolution{public:std::string......