number 类型, 十进制数据类型(平台无关的)

pls_integer 和 binary_integer 这两种数据类型和你底层硬件表示整数的方法完全一致, 这两种类型的运算是利用硬件原生, 机器指令执行的, 你不能再数据库中保存这些类型的值.

binary_float 和 binary_double 一般用于浮点数计算

number 类型, number(9,2)  // 注意, 这里的9是9位精度, 表示有效数字要包含2位小数, 所以这个数的最大值是 9 999 999.99

number(9,11) // .00999999999, 其中 有效数字是9个, 而小数点后边的位数是11位.

number(9, -11) // 99999999900000000000 , 这种形式尽量少用, 看着迷糊

pls_integer 类型是为了运算速度, 因为 pls_integer 是整数, 因此在移植硬件平台时不会遇到兼容性问题, 但是如果使用pls_integer时要经常和 number类型互相转换, 那还是从一开始就使用number类型更好.

binary_integer 类型, 不推荐使用

simple_integer 类型 和 pls_integer 相同的取值范围, 只是它没有溢出, 也不支持 null, 所以如果你设计的列既没有null 也不可能溢出, 那么选用这种类型会有很好的性能.

例如: 下列代码, 可以比较 procedure 运行

   1:  -- chap09_01.sql
   2:  create or replace procedure pls_test(interations in pls_integer)  -- result: 590000
   3:  as
   4:      int1    pls_integer := 1;
   5:      int2    pls_integer := 2;
   6:      begints    timestamp;
   7:      endts    timestamp;
   8:  begin
   9:      begints := systimestamp;
  10:      
  11:      for cnt IN 1 .. iterations
  12:      loop
  13:          int1 := int1 + int2 * cnt;
  14:      end loop;
  15:      
  16:      endts := systimestamp;
  17:      dbms_output.put_line( iterations
  18:                              || ' iterations had run time of:'
  19:                              || to_char(endts - begints));
  20:  end;
  21:  /
  22:   
  23:  -- chap09_02.sql
  24:  -- simple_integer 是 11g 之后才有的, 所以目前测试不了
  25:  create or replace procedure pls_test(interations in simple_integer)  -- result: 590000
  26:  as
  27:      int1    simple_integer := 1;
  28:      int2    simple_integer := 2;
  29:      begints    timestamp;
  30:      endts    timestamp;
  31:  begin
  32:      begints := systimestamp;
  33:      
  34:      for cnt IN 1 .. iterations
  35:      loop
  36:          int1 := int1 + int2 * cnt;
  37:      end loop;
  38:      
  39:      endts := systimestamp;
  40:      dbms_output.put_line( iterations
  41:                              || ' iterations had run time of:'
  42:                              || to_char(endts - begints));
  43:  end;
  44:  /

to_number 函数

to_char

cast 也是 字符串与数字之间来回转换的.

ceil  : 返回最小整数

floor : 返回 <= 指定值得最大整数, 这个整数相当于指定值的”下限”

round : 对一个数字执行4舍5入.

trunc : 把一个数字按照指定的小数位数截断.

ABS: 绝对值

SQRT: 平方根

plsql programming 09 数字的更多相关文章

  1. Day_11【集合】扩展案例4_删除长度大于5的字符串,删除元素包含0-9数字的字符串

    分析以下需求,并用代码实现 1.定义ArrayList集合,存入多个字符串 如:"ab1" "123ad" "bca" "dadf ...

  2. plsql programming 17 过程, 函数与参数

    代码模块化, 即将一大块代码拆成若干小块(过程), 然后就可以在其他模块调用这些模块了, 这样, 重用性更好, 也方便管理. 过程: 过程是一个可以像执行 PL/SQL 语句一样调用的程序, 一个过程 ...

  3. plsql programming 16 动态SQL和动态PLSQL

    动态SQL 是指在执行时才构建 SQL 语句, 相对于静态 sql 的编译时就已经构建. 动态PLSQL 是指整个PL/SQL代码块都是动态构建, 然后再编译执行的. 作用: 1. 可以支持 DDL ...

  4. plsql programming 04 条件和顺序控制

    1. 条件语句 if salary > 40000 or salary is NULL then give_bonus(employee_id, 500); end if; if conditi ...

  5. plsql programming 01 plsql概述

    授权 从 oracle 8i 开始, oracle 用通过提供 authid 子句为 pl/sql 的执行授权模型, 这样我们可以选择使用 authid current_user(调用者权限)来执行这 ...

  6. plsql programming 14 DML和事务管理

    我们可以把多个SQL语句集中在一起, 在逻辑上组成一个事务, 从而保证这些操作或者全部被保存到数据库(用sql的说法就是”提交”), 或者被整体驳回(用sql的说法是“回滚”). 事务: ACID 原 ...

  7. plsql programming 11 记录类型

    记录类型非常类似数据库表中的行. 记录作为一个整体本身并没有值, 不过每个单独成员或字段都有值, 记录提供了一种把这些值当做一组进行操作的方法. 例如: 1: -- create a table 2: ...

  8. plsql programming 13 其他数据类型

    bolean 类型 raw 类型, 用来保存和操作少量的二进制数据. urowid 和 rowid 类型, 这两种数据类型表示数据库的 rowid. 所谓 rowid 就是一个标识符-用来表示数据库中 ...

  9. plsql programming 07 使用数据

    数据类型 char, Nchar varchar2, Nvarchar2 clob, Nclob number number(9, 2);  -- 定点小数, 小数点左边7位, 右边2位 number ...

随机推荐

  1. 在WinRT程序中使用MEF

    今天试了一下在WinRT中使用MEF,这里简单的介绍一下步骤. 首先,使用NuGet安装MEF 然后,就可以使用MEF组装插件了,简单的示例如下: interface ILogger    {     ...

  2. Word调整表格大小

    在Word文档中创建表格后,用户往往需要根据输入的内容调整表格的行高和列宽,有时也需要对整个表格的大小进行调整. 在选择的表格上右击,选择快捷菜单中的“自动调整”—“根据内容调整表格”命令,Word将 ...

  3. 直接拿来用!最火的iOS开源项目(二)

    每一次的改变总意味着新的开始.”这句话用在iOS上可谓是再合适不过的了.GitHub上的iOS开源项目数不胜数,iOS每一次的改变,总会引发iOS开源项目的演变,从iOS 1.x到如今的iOS 7,有 ...

  4. js基础的思维导图

    纯粹转载下,我可画不出这么好看的思维导图,这得感谢@ChokCoco javascript变量 javascript运算符 javascript数组 javascript流程语句 javascript ...

  5. Oracle架构全图

  6. paypal - 支付所遇到的问题,编码等等

    1.ipn支付方式编码问题,paypal默认编码为 gb2312,需要登录paypal后台,进入用户信息设置>销售工具>更多销售工具>paypal按钮编码设置>更多选项,全部修 ...

  7. js apply和call区别

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  8. MySql常用函数数学函数、加密函数等(转—收藏)

        MySql函数众多,这里只是列举了一部分常用的函数.   一.数学函数 ABS(x)                                         // 返回x的绝对值 BI ...

  9. 脱星摘帽刺激 ST板块表现出众

    年报及业绩预告不断公布,在脱星摘帽.资产重组等一系列利好的刺激下,ST板表现出众.随着上市公司2015年财报披露的推进,*ST公司的命运也将浮出水面,近日多家有望“摘帽”的公司大多都走出了不错的行情, ...

  10. web页面性能分析一些网址

    https://developers.google.com/speed/pagespeed/insights/