Oracleindex by binary_integer型的详细
句:type  numbers  is table of number index by binary_integer;
其作用是:
加了”index by binary_integer ”后,numbers型的下就是自增,numbers型在插入元素,不需要初始化,不需要次extend增加一个空
而如果没有“index by binary_integer”,那就得要初始化,且插入一个元素到numbers型的table中,都需要先extend.
示例:
没加“index by binary_integer”
declare
type numbers is table of number;
n    numbers := numbers();
begin
n.extend;
n(1) := 2;
n.extend;
n(2) := 3;
for i in1 .. n.count loop
dbms_output.put_line(n(i));
end loop;
end;
出:2,3
而如果加了“index by binary_integer”,代如下写就可以达到上面的效果
declare
type numbers is table of number index by binary_integer;
n numbers;
begin
n(1) := 2;
n(2) := 3;
for i in1 .. n.count loop
dbms_output.put_line(n(i));
end loop;
end;
附:
(SCALAR)
  合法的型与数据的列所使用的型相同,此外它有一些展。它又分七个oracle 字符串转数组组:数字、字符、行、日期、行标识、布和可信。
  数字,它有三基本型--NUMBER、PLS_INTEGER和BINARY_INTENER。NUMBER可以描述整数或数,而PLS_INTEGER和BINARY_INTENER只能描述整数。
  NUMBER,是以十制格式行存的,它便于存,但是在算上,系会自的将它转换行运算的。它的定方式是NUMBER(P,S),P是精度,最大38位,S是刻度范,可在-84...127。例如:NUMBER(5,2)可以用来存表示-999.99的数。P、S可以在定是省略,例如:NUMBER(5)、NUMBER等;
  BINARY_INTENER用来描述不存在数据中,但是需要用来算的符号的整数。它以2的补码制形式表述。循环计数器常使用这种类型。
  PLS_INTEGER和BINARY_INTENER唯一区是在算当中生溢出,BINARY_INTENER型的量会被自指派一个NUMBER型而不会出,PLS_INTEGER型的量将会错误
  字符,包括CHAR、VARCHAR2(VARCHAR)、LONG、NCHAR和NVARCHAR2几种类型。
  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字的可字符串。
  NCHAR、NVARCHAR2,国家字符集,与量NLS指定的言集密切相,使用方法和CHAR、VARCHAR2相同。
  行,包括RAW和LONG RAW两种类型。用来存制数据,不会在字符集间转换
  RAW,似于CHAR,声明方式RAW(L),L为长度,以字节为单位,作数据列最大2000,作为变量最大32767字
  LONG RAW,似于LONG,作数据列最大存2G字的数据,作为变量最大32760字
  日期,只有一种类型--DATE,用来存储时间信息,站用7个字(从世到秒),绝对没有“千年虫”问题
  行标识,只有一种类型--ROWID,用来存“行标识符”,可以利用ROWIDTOCHAR函数来将行标识转换字符。
  布,只有一种类型--BOOLEAN,仅仅可以表示TRUE、FALSE或者NULL。
  可信,只有一种类型--MLSLABEL,可以在TRUSTED ORACLE中用来保存可变长度的二标签。在准ORACLE中,只能存NULL
型是经过预的,利用型可以衍生出一些型。主要有记录、表
  记录,可以看作是一组标量的构,它的声明方式如下:
  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是一种标型的型声明。引用也必量。表和数不同,表有两列,KEY和VALUE,KEY就是定义时声明的BINARY_INTENER,VALUE就是定义时声明的scalar_type。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。