网站首页 > 文章中心 > 其它

oracle怎么用数组

作者:小编 更新时间:2023-08-16 14:31:53 浏览量:356人看过

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

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

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

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

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

oracle怎么使用数组

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

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;

--输出数组的内容

dbms_output.put_line(v_array(i));

end;

SQL set serverout on;

SQL declare

①.0 v_array.extend;

①.1 v_array(i) := i;

PL/SQL procedure successfully completed

SQL

oracle中要怎么使用数组

ORACLE在PL/SQL中是没有数组(Array)概念的.但是如果程序员想用Array的话,就得变通一下,用TYPE 和Table of Record来代替多维数组,一样挺好用的.

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

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

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

A intarray;

TYPE T_EMP IS TABLE OF EMP%ROWTYPE INDEX BY BINARY_INTEGER;

A_EMP T_EMP;

I BINARY_INTEGER := 0;

FOR REC IN (SELECT EMPNO,ENAME FROM EMP) LOOP

I := I ◆ 1;

A_EMP(I).EMPNO := REC.EMPNO;

END LOOP;

l:= A_EMP.first;--使用first方法

loop

exit when l is null;

dbms_output.put_line(l||':'|| A_EMP(l).ENAME );

l:=A_EMP.next(l);

pl/sql预定义了在varray 和嵌套表实例上进行调用的方法.这些方法能在集合上执行一定的功能.

EXISTS该函数返回集合中第一个元素的索引,如果集合为空,返回NULL

Collection.EXISTS(index)

COUNT该函数集合元素的数目

Collection.COUNT

DELETE该过程从嵌套表中删除一个或多个或合部元素

Table_name.DELETE 删除所有元素

Table_name.delete(index)删除指定索引的记录

Table_name.delete(start_index,end_index)删除区间内元素

FIRST返回集合第一个元素索引,如果集合为空,返回NULL

Collection.FIRST

LAST返回集合中最后一个元素索引,如果集合为空,返回NULL

Collection. LAST

NEXT返回集合当前元素的下一个元素的索引,如果它不存在就返回NULL

Collection. NEXT

PRIOR返回集合当前元素的上一个元素的索引,如果它不存在就返回NULL

Collection. PRIOR

LIMIT返回varray中创建元素的最大个数

Collection. LIMIT

EXTENDS该过程在集合的末尾添加新的元素

Collection.EXTEND添加一个NULL元素;Collection.extends(n)添加N个NULL元素,Collection.extend(n,index)添加由index指定位置上元素的n个副表

TRIM从集合末尾处删除元素

Collection.TRIM 删除最后一个元素

Collection.TRIM(n)删除最后N个元素

Oracle 内存表(数组,函数返回值类型)

返回字符数组.

/*============================================*

* Author? : SANFU

* ALERTER? :

* ALERTER_TIME? :

* Purpose? :? 获取字符数组

* Obj_Name? ? : GET_STRARRAY

* AV_STR : 要分割的字符串

* AV_SPLIT : 分隔符号

*============================================*/

? ? ? ? ? ? ? ? ? ? ? ) RETURN role_name_tb_type IS

? v_length? NUMBER;

? role_name_tb role_name_tb_type := role_name_tb_type();

BEGIN

? v_length := scmdata.sf_import_company_users_pkg.get_strarraylength(v_av_str,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? v_av_split);

FOR i IN 0 .. (v_length - 1) LOOP

? ? --扩展数组

? ? role_name_tb.extend;

? ? SELECT scmdata.sf_import_company_users_pkg.get_strarraystrofindex(v_av_str,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? v_av_split,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? i)

? ? ? INTO role_name_tb(role_name_tb.count)

? ? ? FROM dual;

? /*? ? for i in 0 .. (v_length - 1) loop

? ? dbms_output.put_line(role_name_tb(i));

end loop;*/

? RETURN role_name_tb;

END get_strarray;

Oracle存储过程中如何使用数组(附范例)

在PL/SQL中是没有数组(Array)概念的,但是如果程序员想用Array的话,可以用TYPE和 Table of Record变通一下,来代替多维数组.

以上就是土嘎嘎小编为大家整理的oracle怎么用数组相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章