Oracle的数据类型

我们为什么需要Oracle的数据类型?

  我们在学习其他编程语言时,始终离不开对数据的操作,而Oracle数据库作为一个数据库应用软件,更是生来就是与数据打交道的。了解字段的数据类型,并进一步了解对不同数据类型的操作方法,才能在实际应用中灵活使用,避免数据类型不一致及数据类型转换中的“坑”。

  深入理解Oracle数据库的数据类型,更是对数据库的优化大有助益。

数据类型

  PL/SQL的数据类型是一种静态化的类型,也被称为强类型化。数据类型的校验会在编译过程中,而不是在运行时,这样在编译时即可以发现错误,以增强程序的稳定性。

1.数字类型

  PL/SQL支持的数字类型如下表:

类型 描述
BINARY_DOUBLE 于Oracle 10gR1中新增,是一个IEEE-754标准的双精度浮点整数类型,这个类型主要用于需要高性能的科学计算。
BINARY_FLOAT 于Oracle 10gR1中新增,是一个单精度浮点数据类型,主要用于科学计算。
BINARY_INTEGER 用来存储有符号的整数类型,范围在-2147483647到+2147483647之间。
NUMBER 最常用的数据类型,用来存储浮点数或整数,最大精度是38。NUMBER可以用来保存浮点数,其刻度值在-84到127之间。
PLS_INTEGER 用来存储有符号的整数类型,范围在-2147483647到+2147483647之间。对初学者来说,Oracle建议使用 PLS_INTEGER 而不是 BINARY_INTEGER。

1.1 NUMBER

  NUMBER类型是日常开发中使用最多的数字类型,它即可用来表示整数,也可以用来表示浮点数。其声明语法如下:

	NUMBER [( 精度 , 刻度 )] 

   [ ]表示声明时可以进行定义,也可以省略。如果选择定义时,可以选择只定义精度,或者同时定义精度与刻度,无法单独定义刻度。
   精度:允许的数值总长度,即所有数字个数。
   刻度:允许的小数点右边的数字个数,如果刻度是负数,则表示小数点左边的数字个数。

  所以,精度的定义如果比刻度小,则会编译报错,例如:v_num1 NUMBER(2,3)因为你总数字个数为2个,但你小数点后的位数就有3个了,总数字个数肯定超过。

  而在不指定精度时,默认精度即为38位。但即使超过38位,依旧可以正常执行,只是超出部分精度丢失,由0补充。

  来一段实例,各种使用情况都试一下:

DECLARE
  v_num1 NUMBER:= 99999999919999999992999999999399999999949999999999999; --不指定精度时
  v_num2 NUMBER(5):= 3.14159; --精度为3,不指定刻度,则无法显示小数,且整数位最多只能有3位
  v_num3 NUMBER(5,3):= 3.14159; --小数位显示三位,则从第三位开始四舍五入
  v_num4 NUMBER(5,-3):= 31415.926; --刻度为负数,从小数点右边数3位,进行四舍五入,且小数位丢失
  v_num5 NUMBER(5,-1):= 31415; ---刻度为负数,从小数点右边数3位,进行四舍五入
  v_num6 NUMBER:= 31415926.535897932;  --默认,精度38,刻度127
BEGIN
  DBMS_OUTPUT.put_line('v_num1 = '|| v_num1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值