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

oracle怎么使用数组

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

祁连ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

如何在oracle建一个存储过程来遍历数组,新手求解

SQL code

DECLARE

-- Define a varray of twelve strings.

TYPE months_varray IS VARRAY(12) OF STRING(9 CHAR);

-- Define an associative array of strings.

TYPE calendar_table IS TABLE OF VARCHAR2(9 CHAR)

INDEX BY BINARY_INTEGER;

-- Declare and construct a varray.

month MONTHS_VARRAY :=

months_varray('January','February','March'

,'April','May','June'

,'July','August','September'

,'October','November','December');

-- Declare an associative array variable.

calendar CALENDAR_TABLE;

BEGIN

-- Check if calendar has no elements.

IF calendar.COUNT = 0 THEN

-- Print a title

DBMS_OUTPUT.PUT_LINE('Assignment loop:');

DBMS_OUTPUT.PUT_LINE('----------------');

-- Loop through all the varray elements.

FOR i IN month.FIRST..month.LAST LOOP

-- Initialize a null associative array element.

calendar(i) := '';

-- Print an indexed element from the associative array.

DBMS_OUTPUT.PUT_LINE(

'Index ['||i||'] is ['||calendar(i)||']');

-- Assign the numeric index valued varray element

-- to an equal index valued associative array element.

calendar(i) := month(i);

END LOOP;

-- Print a title

DBMS_OUTPUT.PUT(CHR(10));

DBMS_OUTPUT.PUT_LINE('Post-assignment loop:');

DBMS_OUTPUT.PUT_LINE('---------------------');

-- Loop through all the associative array elements.

FOR i IN calendar.FIRST..calendar.LAST LOOP

-- Print an indexed element from the associative array.

DBMS_OUTPUT.PUT_LINE(

'Index ['||i||'] is ['||calendar(i)||']');

END LOOP;

END IF;

END;

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中定义一个数组

集合:是具有相同定义的元素的聚合。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怎么创建数组,oracle中数组使用
网站地址:http://scyanting.com/article/hdeiii.html