oracle怎么使用数组,oracle中数组使用

oracle怎么使用数组

除了构造函数外,集合还有很多内建函数,这些函数称为方法。 调用方法的语法如下: collectionmethod 下表中列出oracle中集合的方法 方法 描述 使用限制 COUNT 返回集合中元素的个数 DELETE 删除集合中所有元素 DELETE() 删除元素下标为x的元素oracle怎么使用数组

创新互联-专业网站定制、快速模板网站建设、高性价比双柏网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式双柏网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖双柏地区。费用合理售后完善,十多年实体公司更值得信赖。

如何在ORACLE中定义一个数组

集合:是具有相同定义的元素的聚合。Oracle有两种类型的集合:

可变长数组(VARRAY):可以有任意数量的元素,但必须预先定义限制值。

嵌套表:视为表中之表,可以有任意数量的元素,不需要预先定义限制值。

在PL/SQL中是没有数组(Array)概念的。但是如果程序员想用Array的话,就得变通一下,用TYPE

和Table

of

Record来代替多维数组,一样挺好用的。

emp_type

就好象一个table

中的一条record

一样,里面有id,

name,gender等。emp_type_array

象个table,

里面含有一条条这样的record

(emp_type),就象多维数组一样。

--单维数组

DECLARE

TYPE

emp_ssn_array

IS

TABLE

OF

NUMBER

INDEX

BY

BINARY_INTEGER;

best_employees

emp_ssn_array;

worst_employees

emp_ssn_array;

BEGIN

best_employees(1)

:=

'123456';

best_employees(2)

:=

'888888';

worst_employees(1)

:=

'222222';

worst_employees(2)

:=

'666666';

FOR

i

IN

1..best_employees.count

LOOP

DBMS_OUTPUT.PUT_LINE('i='||

i

||

',

best_employees=

'

||best_employees(i)

||

',

worst_employees=

'

||worst_employees(i));

END

LOOP;

END;

--多维数组

DECLARE

TYPE

emp_type

IS

RECORD

(

emp_id

employee_table.emp_id%TYPE,

emp_name

employee_table.emp_name%TYPE,

emp_gender

employee_table.emp_gender%TYPE

);

TYPE

emp_type_array

IS

TABLE

OF

emp_type

INDEX

BY

BINARY_INTEGER;

emp_rec_array

emp_type_array;

emp_rec

emp_type;

BEGIN

emp_rec.emp_id

:=

300000000;

emp_rec.emp_name

:=

'Barbara';

emp_rec.emp_gender

:=

'Female';

emp_rec_array(1)

:=

emp_rec;

emp_rec.emp_id

:=

300000008;

emp_rec.emp_name

:=

'Rick';

emp_rec.emp_gender

:=

'Male';

emp_rec_array(2)

:=

emp_rec;

FOR

i

IN

1..emp_rec_array.count

LOOP

DBMS_OUTPUT.PUT_LINE('i='||i

||',

emp_id

='||emp_rec_array(i).emp_id

||',

emp_name

='||emp_rec_array(i).emp_name

||',

emp_gender

=

'||emp_rec_array(i).emp_gender);

END

LOOP;

END;

--------------

Result

--------------

i=1,

emp_id

=300000000,

emp_name

=Barbara,

emp_gender

=

Female

i=2,

emp_id

=300000008,

emp_name

=Rick,

emp_gender

=

Male

oracle存储过程中如何使用数组

首先你需要定义一个数组类型,然后定义这个数组变量

declare

type a_type is table of number;

-- type a_type is array(10) of number;

-- 下面一种定义方式则指定了该数组的最大元素个数

a a_type := a_type(); -- 定义并初始化一个数组变量

begin

a.extend(3); -- 数组扩展到3个元素

a(1) := 1;

a(2) := 10;

a(3) := 100;

end;

另外数组还有一下方法和属性

first -- 第一个元素下标

last -- 最后一个元素下标

count -- 数组元素个数

prior(n) -- 下标 n 的前一个元素下标

next(n) -- 下标 n 后一个元素下标

extend(n) -- 添加 n 个数组元素,不带参数添加一个数组元素

delete(n) -- 删除数组中下标为 n 的元素,不带参数删除整个数组元素

Oracle PL/SQL (5) - 可变数组IS VARRAY(长度) OF的使用

可变数组,是一种集合。一个可变数组是一个对象的集合,其中每个对象都具有相同的数据类型。可变数组的大小在创建时决定。在表中创建可变数组后,可变数组在主表中即为一个列。

可变数组特性

1)可变数组主要的特性即是元素的最大个数是有限制

2)可变数组下标固定为1,上限可以扩展

3)在可变数组声明时自动设置为NULL值.所谓的空值指的是集合本身是空,不是针对它所拥有的元素,故在元素引用前需要对其进行初始化

可变数组创建语法:

CREATE [OR REPLACE] TYPE 类型名称 IS VARRAY(长度) OF 数据类型;

例如:定义一个可变数组类型 my_varray ,它的最大容量是5,元素类型是 VARCHAR2.

1、简单类型的可变数组

2、定义TYPE类型的可变数组

输出结果:公司code:204

3、定义二维可变数组

输出结果:

4、定义复合类型的可变数组

输出结果:

事故号:AAA 版本号:1 有效标识:1

事故号:BBB 版本号:2 有效标识:1

事故号:CCC 版本号:3 有效标识:0

Oracle中如何使用数组存储数据?比如写一个函数将2^n次方的结果放在数组中?求详细过程。。。谢谢

declare

--定义IntArray 类型,该类型是每个元素为int类型的数组

Type IntArray is table of int;

--定义一个IntArray 类型的变量

v_array IntArray := IntArray();

begin

--向数组中存入数据

for i in 1.. 100 loop

--需要扩展数组

v_array.extend;

v_array(i) := i;

end loop;

--输出数组的内容

for i in 1.. 100 loop

dbms_output.put_line(v_array(i));

end loop;

end;

SQL set serverout on;

SQL declare

2 --定义IntArray 类型,该类型是每个元素为int类型的数组

3 Type IntArray is table of int;

4 --定义一个IntArray 类型的变量

5 v_array IntArray := IntArray();

6 begin

7 --向数组中存入数据

8 for i in 1.. 100 loop

9 --需要扩展数组

10 v_array.extend;

11 v_array(i) := i;

12 end loop;

13

14 --输出数组的内容

15 for i in 1.. 100 loop

16 dbms_output.put_line(v_array(i));

17 end loop;

18 end;

19 /

1

2

3

4

5

6

7

8

9

10

此处省略90行

PL/SQL procedure successfully completed

SQL

oracle 存储过程中如何使用数组,请给一个能调试成功的例子

oracle这么强大的数据库能使用数组的

在oracle中,数组主要是用来存储批量数据,一次性的对数据库进行插入,更新,删除操作。

下面给你一个批量插入的例子,其他都类似的

这是我的blog上面有例子,你自己看看吧。


当前题目:oracle怎么使用数组,oracle中数组使用
浏览路径:http://cdiso.cn/article/hdsceh.html

其他资讯