Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6941439
  • 博文数量: 701
  • 博客积分: 10821
  • 博客等级: 上将
  • 技术积分: 12021
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-02 10:41
个人简介

中科院架构师,专注企业数字化各个方面,MES/ERP/CRM/OA、物联网、传感器、大数据、ML、AI、云计算openstack、Linux、SpringCloud。

文章分类

全部博文(701)

分类: Oracle

2013-08-08 19:48:09

 

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,都很少用到。

阅读(10095) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~