`

oracle的number类型解析

阅读更多

 转载,原文:http://tech.e800.com.cn/articles/2009/1030/1256867788831_1.html

 

oracle中数字类型有number,number可以存储小数的,如果是只想存储整数,建议声明为:pls_integer 或者是binary_integer或者是integer。

其中number类型的声明类型为number(精度,刻度),所谓精度我的理解就是从左侧第一个不为零的数字开始到开始四舍五入的位置的位数,刻度就是从小数点数几位开始进行四舍五入。刻度为正,表示小数点向后数,刻度为负,表示小数点向前数。

简单的举例来说:number(3,2)。

这个数据类型的精度为3位,精确到小数点后面2位。

如果有个变量这样声明:n_test  number(3,2):=6.335;

那么oracle怎么判断这个类型的变量能否给赋这个值呢?总的来说是分三步进行的:

1.       根据刻度进行四舍五入:6.335——>6.34

2.       对上述值检查精度的位数为3

3.       检查结果不大于指定的精度,可以保存。

如果有个变量这样声明

n_test  number(3,2):=63.355;

那么oracle怎么判断这个类型的变量能否给赋这个值呢?还是分三步来进行:

1.       根据刻度进行四舍五入:63.35——>63.36

2.       对上述值检查精度的位数为4

3.       检查结果大于指定的精度,不可以保存,Oracle会提示错误。

  再举一个刻度为负的例子:number(3,-3)。

这个数据类型表示精度为3位,精确到小数点前面3位。

如果有个变量这样声明:n_test number(3,-3):=30541;那么Oracle怎么判断这个类型的变量能否给赋这个值呢?还是三步:

1.       根据刻度进行四舍五入:30541——>31000

2.       对上述值检查精度为2

3.       根据精度判断小于指定的精度,Oracle不报错,能保存。

如果有个变量声明如下:n_test number(1,-2):=45698;那么Oracle怎么判断这个类型的变量能否给赋这个值呢?还是三步:

1.       根据刻度进行四舍五入:45698——>45700;

2.       对上述检查精度为3

3.       根据精度检查大于指定的精度范围不能保存。

分享到:
评论

相关推荐

    Oracle数据类型之Number

    ### Oracle 数据类型之 Number #### 一、概述 在Oracle数据库中,`NUMBER`类型是一种极为重要的数值数据类型,主要用于存储各种数值数据。随着Oracle版本的发展,为了更好地满足用户需求和提升性能,Oracle在其...

    Oracle row_number()over

    Oracle 中的 row_number()over 函数是一个分析函数,用于生成一个连续的数字序列,可以根据某个列或多个列对数据进行分区和排序,然后生成一个唯一的序号。 row_number()over 函数的基本语法为: ``` row_number()...

    Oracle数据库字段类型详解

    `DECIMAL` 类型在Oracle中实际上等同于`NUMBER` 类型,Oracle支持`DECIMAL` 主要是为了与其他数据库系统兼容。 **Float** `FLOAT` 类型是`NUMBER` 类型的一种变体,格式为`FLOAT(n)`,其中`n` 表示位的精度,即...

    Oracle和DB2的数据类型比较

    本文旨在对比Oracle和DB2/400数据库管理系统中的数据类型,并重点分析日期和时间类型的差异。由于Oracle和DB2/400在数据类型的定义和实现上存在差异,因此在进行数据库迁移或跨平台开发时,了解这些差异至关重要。 ...

    Oracle Number常用方法封装

    在Oracle数据库中,`NUMBER`数据类型是一种广泛使用的数据类型,它可以存储整数和浮点数,具有极大的数值范围和精度。在这个特定的场景中,我们关注的是将Oracle `NUMBER`数据类型的常用操作封装到一个名为`ZL_...

    oracle row_number用法

    ### Oracle Row_Number 函数详解 #### 一、Row_Number 基础概念 在Oracle数据库中,`ROW_NUMBER()`函数是一种窗口函数,主要用于为查询结果中的每一行分配一个唯一的序列号。这一特性使得它在处理分组数据时非常...

    SqlServer,Oracle数据类型,函数,导入导出对照

    - **smalldatetime**、**smallint**、**smallmoney**:SQL Server中用于节省空间的数据类型,Oracle通过调整NUMBER类型的参数来匹配。 - **sql_variant**:SQL Server中的一种特殊类型,可以存储多种数据类型,...

    Oracle 10g 操作手册 Oracle数据类型精解

    本操作手册旨在深入解析Oracle 10g的使用,特别是其数据类型的详细信息,同时通过PowerDesigner的实例教程,帮助初学者快速入门并积累实践经验。 一、Oracle数据类型详解 在Oracle数据库中,数据类型定义了列可以...

    Oracle各种数据类型的介绍,适合中高级编程开发人员

    本文将详细介绍Oracle中的几种常见数据类型,并针对每种类型的特点进行分析,旨在帮助中高级编程开发人员以及初学者更好地理解和使用Oracle数据类型。 #### Character 类型 - **CHAR**: 是一种固定长度的字符类型...

    oracle与sql_server数据类型对应关系.doc

    《Oracle与SQL Server数据类型对应关系深度解析》 在数据库领域,Oracle与SQL Server作为业界广泛使用的两大数据库管理系统,各自拥有独特的数据类型体系。当在两者之间进行数据迁移、复制或整合时,理解并掌握其...

    oracle将字符串转为number

    在Oracle数据库环境中,有时我们需要将存储为字符串的数据转换为数值类型以便进行数学运算或进一步的数据分析。这在处理财务数据、统计分析等场景中非常常见。本文将详细介绍如何在Oracle中将字符串转换为Number类型...

    oracle分析函数row_number() over()使用

    Oracle的分析函数`ROW_NUMBER() OVER()`是一种强大的工具,用于在查询结果集中为每一行分配一个唯一的序列号。这个函数通常用于数据分页、排名或者为特定条件的记录分配顺序。下面我们将详细讨论`ROW_NUMBER() OVER...

    Oracle中的分析函数详解

    其中,Oracle的分析函数是其强大的特性之一,它允许用户在单个SQL查询中执行复杂的分析操作,而无需使用子查询或者自连接。这篇文档将深入探讨Oracle中的分析函数,帮助你更好地理解和利用这一功能。 一、什么是...

    oracle 自定义数据结构和表类型实验

    在Oracle中,用户可以通过CREATE TYPE语句创建自己的数据类型,这可以是基于现有的简单数据类型(如VARCHAR2、NUMBER等)的组合,也可以是对象类型。例如,你可以创建一个包含姓名、年龄和地址的Person类型: ```...

    mysql与Oracle数据类型比较.pdf

    以下是对MySQL和Oracle数据类型比较的详细分析: 1. **整数类型**: - MySQL的`BIGINT`在Oracle中对应`NUMBER(19, 0)`,用于存储大整数。 - `INT`和`INTEGER`在Oracle中都是`NUMBER(10, 0)`,适合存储一般整数。 ...

    Oracle数据类型说明

    本文将详细介绍 Oracle 中常见的数据类型,并对它们的特点和应用场景进行分析。 #### 二、ANSI SQL 数据类型 根据描述中的部分信息,可以看出 Oracle 支持 ANSI SQL 标准中的数据类型。这些类型包括但不限于: - ...

    Oracle查询指定表的所有字段名和数据类型SQL

    - **DATA_TYPE**:表示该列的数据类型,例如VARCHAR2、NUMBER等。 - **DATA_LENGTH**:对于字符类型的数据,表示该列的最大长度;对于数字类型,则表示其最大位数。 - **DATA_PRECISION**:对于数值类型,表示该数值...

    Oracle SCN机制解析

    Oracle SCN(System Change Number)机制是Oracle数据库中用于追踪和管理数据变化的关键组件。SCN是一个不断递增的数字,确保了数据库能够准确地识别和处理事务中的数据修改,尤其是在故障恢复、Data Guard、Streams...

Global site tag (gtag.js) - Google Analytics