zoukankan      html  css  js  c++  java
  • Oracle中Binary_Integer与Pls_Integer 的区别

    Binary_Integer 与 Pls_Integer 都是整型型. Binary_Integer值计算是由Oracle来行,不会出溢出,但是行速度慢,因它是由Oracle模拟执行。Pls_Integer行是由硬件即直接由CPU来运算,因而会出溢出,但其行速度前者快多。

    一、概述

      在ORACLE8中定了:量(SCALAR)、合(COMPOSITE)、引用(REFERENCE)和LOB四数据型,下面详细的特性。

      二、(SCALAR)

      合法的型与数据的列所使用的型相同,此外它有一些展。它又分七个:数字、字符、行、日期、行标识、布和可信。

      数字,它有三基本--NUMBERPLS_INTEGERBINARY_INTENERNUMBER可以描述整数或数,而PLS_INTEGERBINARY_INTENER只能描述整数。

      NUMBER,是以十制格式行存的,它便于存,但是在算上,系会自的将它转换行运算的。它的定方式是NUMBER(PS)P是精度,最大38位,S是刻度范,可在-84...127。例如:NUMBER(52)可以用来存表示-999.99...999.99的数PS可以在定是省略,例如:NUMBER(5)NUMBER;

      BINARY_INTENER用来描述不存在数据中,但是需要用来算的符号的整数。它以2补码制形式表述。循环计数器常使用这种类型。

      PLS_INTEGERBINARY_INTENER唯一区是在算当中生溢出BINARY_INTENER型的量会被自指派一个NUMBER型而不会出PLS_INTEGER型的量将会错误

      字符,包括CHARVARCHAR2(VARCHAR)LONGNCHARNVARCHAR2种类型。

      CHAR,描述定的字符串,如果实际值度,系将以空格填充。它的声明方式如下CHAR(L)L字符串度,缺省1,作为变量最大32767个字符,作数据存ORACLE8中最大2000

      VARCHAR2(VARCHAR),描述变长字符串。它的声明方式如下VARCHAR2(L)L字符串度,没有缺省,作为变量最大32767个字,作数据存ORACLE8中最大4000。在多字节语境中,实际的字符个数可能小于L,例如:当中文(SIMPLIFIED CHINESE_CHINA.ZHS16GBK),一个VARCHAR2(200)的数据列可以保存200个英文字符或者100字字符。

      LONG,在数据中可以用来保存高达2G的数据,作为变量,可以表示一个最大32760的可字符串。

      NCHARNVARCHAR2,国家字符集,与NLS指定的言集密切相,使用方法和CHARVARCHAR2相同。

      行,包括RAWLONG RAW种类型。用来存制数据,不会在字符集间转换

      RAW似于CHAR,声明方式RAW(L)L为长度,以字节为单位,作数据列最大2000,作为变量最大32767

      LONG RAW似于LONG,作数据列最大存2G的数据,作为变量最大32760

      日期,只有一种类--DATE,用来存储时间信息,站用7个字(从世到秒)绝对没有千年虫问题

      行标识,只有一种类--ROWID,用来存标识,可以利用ROWIDTOCHAR函数来将行标识转换字符。

      布,只有一种类--BOOLEAN仅仅可以表示TRUEFALSE或者NULL

      可信,只有一种类--MLSLABEL,可以在TRUSTED ORACLE中用来保存可变长度的二标签。在ORACLE中,只能存NULL

    三、(COMPOSITE)

      型是经过预的,利用型可以衍生出一些型。主要有记录、表。

      记录,可以看作是一组标量的构,它的声明方式如下:

      TYPE record_type_name IS RECORD

      ( filed1 type1 [NOT NULL] [:=expr1]

      .......

      filedn typen [NOT NULL] [:=exprn] )

      其中,record_type_name是记录类型的名字。(是不是看着象CREATE TABLE?......)引用量,记录只是TYPE,不是VARIABLE。

      表,不是物理存数据的表,在里是一种变型,也称PL/SQL表,它似于C言中的数,在理方式上也相似。它的声明方式如下:

      TYPE table_type_name IS TABLE OF scalar_type INDEX BY BINARY_INTENER;

      其中,table_type_name型的名字,scalar_type是一种标型的型声明。引用也必量。表和数不同,表有两列,KEYVALUEKEY就是定义时声明的BINARY_INTENERVALUE就是定义时声明的scalar_type

      除了记录和表之外,型、集合(嵌套表和VARRAYS)型,些将专门讲解。

      四、引用(REFERENCE)

      在PL/SQL8.0之前,只有一种类--REF CURSOR,也就是游。它的定义较为简单

      CURSOR cursor_name IS select .....from.....;

      在PL/SQL8.0之后,引入了REF型,它指向一个象。这种类型将解。(等我弄明白再,免得在高人面前......)

    五、LOB

      LOB量主要是用来存大量数据的数据字段,最大可以存4G的内容(这么大,存VCD?,浪!)。主要有:

      CLOB:和ORACLE7中的LONG型相似,存储单字符数据。(用来存中文喔。。。)

      NCLOB:用来存多字字符数据。(例如:存《傲江湖》就挺好)

      BLOB:和LONG RAW相似,用来存构的二制数据。

      BFILE:它用来允ORACLE数据外存的大型二制文本行只形式的访问

      六、其他

      其在完成对标量的理解之后,基本上可以C/S模式下的常数据库应用所需了,后说实话,我玩了5ORACLE,都很少用到。

  • 相关阅读:
    PHP 大小写转换、首字母大写、每个单词首字母大写转换相关函数
    【论文学习4】BiSample: Bidirectional Sampling for Handling Missing Data with Local Differential Privacy
    【论文学习3】Local Differential Privacy for Deep Learning
    【论文学习2】 Differential Privacy Reinforcement Learning
    深度学习中的优化算法
    Spatial crowdsourcing
    “pip install tensorflow ”出现错误
    python或pip'不是内部或外部命令”
    pip install torch出现错误
    打不开gitHub的解决方法
  • 原文地址:https://www.cnblogs.com/andyjia/p/4949638.html
Copyright © 2011-2022 走看看