oracle定义数组循环,oralce/plsql数组的几种定义

  • Post author:
  • Post category:其他


关于ORACLE中的数组:记录同集合

集合可以有三种实现方式:

1 自定义一个TYPE使用VARRAY来得到一个数组但只能对基本类型定义如:

CREATE TYPE 类型名 AS VARRAY OF VARCHAR2(20);

1 自定义一个TYPE使用VARRAY来得到一个数组但只能对基本类型定义如:

CREATE TYPE 类型名 AS VARRAY(52) OF VARCHAR2(20);

不能使用如下:

CREATE TYPE 类型名 AS VARRAY(52) OF 表名%ROWTYPE;

注意:使用VARRAY时一定要先指定数组大小

不然搞创建数组类型

2 内嵌表如:

?TYPE 类型名 IS TABLE OF 具体类型如:(表名%ROWTYPE);

?内嵌表数组分二种:Index_by表同嵌套表如上的就是嵌套表而Index_by表只要在其尾回上 INDEX BY BINARY_INTEGER就可以了

例子:

declare

cursor cur_test is select id,mc from test;

type t_test1 is table of varchar2(60) index by binary_integer;

type t_test2 is table of test%rowtype index by binary_integer;

var_test1 t_test1;

var_test2 t_test2;

var_new t_test2;

begin

SELECT id,mc INTO var_test2(0) FROM test WHERE id=’111′;

dbms_output.put_line(‘var_test2(0):’||var_test2(0).id||’—‘||var_test2(0).mc);

SELECT id,mc INTO var_test2(8) FROM test WHERE id=’333′;

dbms_output.put_line(‘var_test2(8):’||var_test2(8).id||’—‘||var_test2(8).mc);

var_new := var_test2;

dbms_output.put_line(‘===== copy var_test2 to var_new =====’);

dbms_output.put_line(‘var_new(0):’||var_new(0).id||’—‘||var_new(0).mc);

dbms_output.put_line(‘var_new(8):’||var_new(8).id||’—‘||var_new(8).mc);

end;

===============================================================&#