via: http://www.cnblogs.com/htht66/archive/2012/02/11/2346743.html
http://fxz-2008.iteye.com/blog/469766
Oracle数组一般可以分为固定数组和可变数组
集合:是具有相同定义的元素的聚合。Oracle有两种类型的集合:
可变长数组(VARRAY):可以有任意数量的元素,但必须预先定义限制值。
嵌套表:视为表中之表,可以有任意数量的元素,不需要预先定义限制值。
在PL/SQL中是没有数组(Array)概念的。但是如果程序员想用Array的话,就得变通一下,用TYPE 和Table of Record来代替多维数组,一样挺好用的。
固定数组
-- ============ char array ===============
DECLARE
-- declare fixed array
TYPE arry_var IS VARRAY(2) OF VARCHAR2(10);
arry_name arry_var;
BEGIN
-- init array
arry_name := arry_var('tom', 'jim','tim');
for i in 1..arry_name.count loop
dbms_output.put_line(arry_name(i));
end loop;
END;
-- ================ number array ========
DECLARE
-- declare fixed array
TYPE arry_num IS VARRAY(10) OF NUMBER;
arry_top arry_num;
BEGIN
-- init array
arry_top := arry_num(1,2,3);
dbms_output.put_line(arry_top(1));
dbms_output.put_line(arry_top(2));
END;
1 VARRAY(10)变数数组大小为10
2OF NUMBER 表示数值类型是number
可变数组
一维数组
DECLARE
TYPE t_table IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
v_table t_table;
v_cnt NUMBER;
BEGIN
v_table(1) := '1';
v_table(2) := '3';
v_table(3) := '9';
v_cnt := v_table.COUNT;
FOR i IN 1 .. v_cnt LOOP
dbms_output.put_line(v_table(i));
END LOOP;
END;
多维数组
1 Create Table
create table XXUSER
(
USER_ID NUMBER,
USER_NAME VARCHAR2(255),
SEX VARCHAR2(2),
AGE NUMBER(3),
ADDRESS VARCHAR2(2000)
)
2 定义结果集(Record)
存放xxuser的部分字段
DECLARE
-- only 2 fileds
TYPE t_record_user IS RECORD(
user_id xxuser.user_id%type,
user_name xxuser.user_name%type);
TYPE t_user IS TABLE OF t_record_user INDEX BY BINARY_INTEGER;
v_arry_user t_user;
BEGIN
SELECT user_id, user_name BULK COLLECT INTO v_arry_user FROM xxuser;
FOR i IN 1 .. v_arry_user.COUNT LOOP
dbms_output.put_line(v_arry_user(i).user_name);
END LOOP;
END;
3 使用ROWTYPE
存放xxuser的全部字段,比Record简洁。
DECLARE
-- ALL,XXUser(user_id, user_name, sex, age, address)
TYPE t_user IS TABLE OF xxuser%ROWTYPE INDEX BY BINARY_INTEGER;
v_arry_user t_user;
BEGIN
SELECT * BULK COLLECT INTO v_arry_user FROM xxuser;
FOR i IN 1 .. v_arry_user.COUNT LOOP
dbms_output.put_line(v_arry_user(i).user_name || v_arry_user(i).sex);
END LOOP;
END;
相关推荐
在Oracle数据库中,由于内置函数不直接支持像Java中的`split`那样拆分字符串并返回数组,因此开发者需要自定义函数来实现这一功能。这里提到的两种方法都是为了解决这个问题,即根据指定的分隔符将字符串拆分为一个...
ORACLE 数组使用方法 Oracle 数组是一种复杂的数据类型,可以存储多个元素,数组可以分为固定数组和可变数组两种类型。在 Oracle 中,数组可以用来存储大量的数据,并且可以通过索引来访问数组中的元素。 固定数组...
Oracle 数组 Oracle 数组是 Oracle 数据库中的一种复杂数据类型,可以存储多个元素。数组可以是固定大小的,也可以是可变大小的。在 Oracle 中,数组可以用来存储多个元素,并且可以对数组进行各种操作,例如遍历、...
ORACLE存储过程中定义数组并且判断某值是否在数组中。有例子可執行、 、有例子可執行、
例如,如果Oracle字段是RAW类型,那么16进制字符串需要转换为字节数组。 5. **数据导入流程**: - 打开Excel文件并读取数据。 - 遍历数据,将16进制数据转换为10进制,或将10进制数据转换为16进制,根据Oracle表...
### Oracle数组实现概述 在Oracle数据库中,数组是一种非常有用的数据结构,用于存储相同类型的多个元素。它可以帮助我们更高效地处理大量数据,并简化代码逻辑。Oracle提供了几种不同的方式来实现数组,包括VAR...
oracle中的数组使用 oracle中的数组使用 oracle中的数组使用 oracle中的数组使用 oracle中的数组使用 oracle中的数组使用
根据提供的文件信息,我们可以深入探讨Oracle数据库中数组的使用及其在存储过程中的应用方式。这里主要涉及了两种类型的数组:`VARRAY` 和 `ASSOCIATIVE ARRAY`(也称为 `INDEXED TABLE`)。接下来,我们将详细解释...
Oracle数据库支持通过数组参数来进行批量操作,这在处理大量数据时能显著提高性能。在本例中,我们探讨了如何使用数组存储过程进行批量插入和删除。数组在Oracle中的使用通常涉及定义PL/SQL类型,这允许我们创建索引...
记录允许存储多列数据,而数组则可以处理批量数据。 7. **动态SQL**:在PL/SQL中,可以构建和执行动态SQL语句,这在处理不确定的或在运行时确定的查询结构时非常有用。 8. **包(Package)**:包是将相关的类型、...
集合是PL/SQL中的数组类型,可以存储一组同类型的值,这对于批量处理数据非常有用。 6. 异常处理:PL/SQL提供了一套强大的异常处理机制,允许开发者编写健壮的代码,能够优雅地处理错误和异常情况。通过BEGIN......
在Oracle数据库中,可变数组(VARRAY)是一种特殊类型的集合数据结构,类似于我们通常理解的数组,但提供了更强大的功能和灵活性。根据给定文件中的描述,“可变数组与嵌套表相似,也是一种集合。一个可变数组是对象...
Oracle支持数组、记录(也称为复合对象)和嵌套表等复合类型。数组允许存储相同类型的多个值,而记录则能封装多个相关属性。嵌套表是可变大小的一维集合,可以包含不同类型的数据。这些复合类型可以增强代码的灵活性...
Intent Lock List(ITL)是Oracle中用于存储事务锁定信息的数组,位于数据块中。每个数据行都有一个与之关联的ITL条目,用于记录事务对行的操作状态。当并发事务请求同一行的锁定时,ITL条目可能会成为死锁的源头。 ...
1. **PL/SQL高级特性**:包括包(Packages)、嵌套表(Nested Tables)、关联数组(Associative Arrays)等复杂数据类型的使用。 2. **并发控制**:如锁定机制,以及如何在多用户环境中确保数据的一致性和完整性。 ...
5. **集合**:PL/SQL支持多种集合类型,如VARrays(固定大小数组)和PL/SQL表(动态大小数组)。集合使你能同时处理多行数据。 6. **记录类型**:允许你创建自定义数据结构,类似于结构或类,包含多个字段。 7. **...
Oracle 数组存储过程批量插入 本文主要讲解了如何使用 Oracle 数组存储过程来实现批量插入功能。通过创建一个存储过程,使用数组作为参数来传递大量数据,然后在存储过程中进行批量插入操作。 首先,需要创建一个...
PostgreSQL支持多种数据类型,如JSON、XML、数组、HSTORE等,还提供了事务处理、复杂的查询、触发器、视图等特性。连接到PostgreSQL数据库,我们需要一个支持PostgreSQL的JDBC驱动,如`org.postgresql.Driver`,然后...
`TOOLS_VA`类型的定义演示了变长数组(VARRAY)的用法,这是一种固定上限的数组类型,可以存储相同类型的多个元素。这里的例子中,`TOOLS_VA`可以存储最多5个`VARCHAR2`类型的字符串。 ### 四、表结构与数据插入 ...