oracle pl/sql 数组使用
2011-11-23 18:23
85 查看
pl/sql 有三种数组类型,到现在为止只用过叫“关联数组集合类型”的数组。
一、定义类型
type <我们自己的数组类型的名字> is table of <datatype>[[color=red]not null[/color]] index by index_type;
其中 datatype是必须的。index by index_type 可以省略。如:
类型定义一般放在包体或者包头的定义类型的区域。
index by 的数据类型可以是BINARY_INTEGER以及它的子类,
下面的都是有效的:
index by binary_integer
index by pls_integer
index by positive
index by natural
index by singtype (只有 -1、0、1三个值)
index by varchar2(32767)
index by table.column%type
index by cursor.column%type
index by package.variable%type
index by package.subtype
二、初始化
我这里定义的数组的index by类型是 binary_integer。
注意事项:数组的下标是由数据库提供的,下标从1开始。
三、使用数组
呵呵使用一个数组(或者集合),专家们喜欢加遍历。
一、定义类型
type <我们自己的数组类型的名字> is table of <datatype>[[color=red]not null[/color]] index by index_type;
其中 datatype是必须的。index by index_type 可以省略。如:
-- Public type declarations
-- TYPE < TYPENAME > IS < DATATYPE >;
TYPE SEQID_AAT IS TABLE OF D_INV_ALARM_SEQ.SEQ_ID%TYPE INDEX BY BINARY_INTEGER;
类型定义一般放在包体或者包头的定义类型的区域。
index by 的数据类型可以是BINARY_INTEGER以及它的子类,
下面的都是有效的:
index by binary_integer
index by pls_integer
index by positive
index by natural
index by singtype (只有 -1、0、1三个值)
index by varchar2(32767)
index by table.column%type
index by cursor.column%type
index by package.variable%type
index by package.subtype
二、初始化
我这里定义的数组的index by类型是 binary_integer。
BEFORE_FIRST_TAB SEQID_AAT; --声明一个数组
SELECT A.SEQ_ID BULK COLLECT
BULK COLLECT INTO BEFORE_FIRST_TAB
FROM D_INV_ALARM_SEQ A
WHERE A.SEQ_NUM < V_SEQ_NUM;
注意事项:数组的下标是由数据库提供的,下标从1开始。
三、使用数组
呵呵使用一个数组(或者集合),专家们喜欢加遍历。
阅读更多
FOR SEQ_INDEX IN 1 .. BEFORE_FIRST_TAB.COUNT LOOP
UPDATE D_INV_ALARM_SEQ A
SET A.SEQ_NUM = A.SEQ_NUM + IN_LENGTH
WHERE A.SEQ_ID = BEFORE_FIRST_TAB(SEQ_INDEX);
END LOOP;
相关文章推荐
- oracle pl/sql 入门+ 数组使用+游标+动态SQL
- oracle pl/sql 函数中使用数组
- oracle pl/sql 入门+ 数组使用+游标+动态SQL
- Oracle使用PL/SQL操作COM对象
- Oracle中使用PL/SQL操作COM对象
- 在pl/sql中使用exp/imp工具实现oracle数据导出/导入
- [Oracle]高效的PL/SQL程序设计(一)--伪列ROWNUM使用技巧
- ORACLE PL/SQL使用经验总结
- [Oracle PL/SQL]当数据表设计成具有父ID的时候,当需要选择所有与父ID同根生的所有节点的时候,使用的SQL语句
- 免安装Oracle客户端使用PL/SQL连接Oracle
- [Oracle]高效的PL/SQL程序设计(一)--伪列ROWNUM使用技巧
- Oracle PL/SQL中如何使用%TYPE和%ROWTYPE
- Oracle 中Java 对象与PL/SQL类型的映射及使用
- Oracle PL/SQL中如何使用%TYPE和%ROWTYPE
- Oracle PL/SQL中如何使用%TYPE和%ROWTYPE
- oracle使用五(PL/SQL)
- Oracle中使用PL/SQL操作COM对象
- ORACLE PL/SQL使用经验总结 [转]
- Oracle PL/SQL Profiler 的使用
- Oracle使用PL/SQL操作COM对象