`

oracle pl/sql 数组使用

 
阅读更多
pl/sql 有三种数组类型,到现在为止只用过叫“关联数组集合类型”的数组。

一、定义类型
type <我们自己的数组类型的名字> is table of <datatype>[not null] 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

    NULL 博文链接:https://dolphin-ygj.iteye.com/blog/440204

    Oracle.Database.11g.PL_SQL.Programming

     ·创建、调试和管理Oracle 驱动的PL/SQL 程序;  ·使用PL/SQL 结构体、分隔符、运算符、变量和语句;  ·使用PLSQL_WARNINGS 和异常处理程序标识和消除错误;  ·使用函数、过程、包、集合和触发器;  ·定义...

    PL/SQL学习笔记

    PL/SQL有三种集合 联合数组 嵌套表 可变数组 联合数组详解: 什么是数组?数组有什么特点 数据是线性存放的,在内存中地址是连续的 可以用索引来访问 定义联合数组? 联合数组不需要定义长度,他能容纳的元素最大...

    oracle的pl-sql源代码

    在学习PL/SQL时的编的一些练习! 包括PL/SQL的数组类型的使用、 游标的各种用法、文件的使用、异常的定义和处理等

    精通Oracle.10g.PLSQL编程

    使用复合数据类型 8.1 PL/SQL记录 8.1.1 定义PL/SQL记录 8.1.2 使用PL/SQL记录 8.2 PL/SQL集合 8.2.1 索引表 8.2.2 嵌套表 8.2.3 变长数组(VARRAY) 8.2.4 PL/SQL记录表...

    Oracle11gPLSQLProgramming

     ·创建、调试和管理Oracle 驱动的PL/SQL 程序;  ·使用PL/SQL 结构体、分隔符、运算符、变量和语句;  ·使用PLSQL_WARNINGS 和异常处理程序标识和消除错误;  ·使用函数、过程、包、集合和触发器;  ·定义...

    godror:用于 Oracle DB 的 GO 驱动程序

    甚至使用 OUT 参数调用存储过程,或发送/检索 PL/SQL 数组类型 - 只需在Exec的参数中提供一个godror.PlSQLArrays选项! 例如,返回的 PL/SQL 数组的数组大小可以通过godror.ArraySize(2000) (默认

    字符串分割成数组函数(plsql function)

    将字符串分割成数组: ...用法:可以将分割结果做为一个数组或者数据库表列来使用 select * from scott.emp where empno in (select column_value from table(my_split('7369,7499,7521,7844',',')));

    如何使用文字下标简化PL/SQL INDEX BY表格

    Oracle 9i第2版扩充了INDEX BY表格功能,允许以文字为下标。这使得联合数组更像是其它语言,如Perl中的杂凑表格。为说明文字字符串可成为目录值,简单使用INDEX BY VARCHAR2,不要使用惯常的INDEX BY BINARY_INTEGER...

    Oracle定义联合数组及使用技巧

    联合数组以前被称为PL/SQL表。在表中不能使用联合数组,只能将它们用作程序设计的结构体。只能在PL/SQL中访问联合数组。 注意到联合数组带来的一些关键问题是非常重要的。这些问题使我们介绍它们的用法时,需要采取...

    oracle database 10g 完整参考手册part1

    第32章 使用本地动态SQL和DBMS_SQL 第Ⅴ部分 对象关系数据库 第33章 实现类型、对象视图和方法 第34章 收集器(嵌套表和可变数组) 第35章 使用大对象 第36章 面向对象的高级概念 第Ⅶ部分 Oracle中的Java 第37章 Java...

    oracle database 11g 高清完整中文版part2

     第36章 使用本地动态sql 和dbms_sql  第37章 pl/sql 调整 第ⅴ部分 对象关系数据库  第38章 实现对象类型、对象视图和方法  第39章 收集器(嵌套表和可变数组)  第40章 使用大对象  第41章 面向对象的高级...

    向Oracle中传入数组,批量执行SQL语句

    1、首先用PL/SQL创建package 1 create or replace package excuteBatchOperate 2 as 3 type sqlStr_Array is table of varchar2(1000) index by binary_integer; 4 procedure excuteBulkData(sqlStr in sqlStr...

    Oracle8i_9i数据库基础

    §15.4 在 PL/SQL 中使用 sqlcode,sqlerrm 273 第十六章 存储过程和函数 276 §16.1 引言 276 §16.2 存储过程 276 §16.2.1 创建过程 276 §16.2.2 使用过程 278 §16.2.3 开发存储过程步骤 279 §16.2.3.1 编辑...

    oracle database 11g 完整参考手册中文高清完整版part3

     第36章 使用本地动态sql 和dbms_sql  第37章 pl/sql 调整 第ⅴ部分 对象关系数据库  第38章 实现对象类型、对象视图和方法  第39章 收集器(嵌套表和可变数组)  第40章 使用大对象  第41章 面向对象的高级...

    oracle database 11g完全参考手册 高清完整版part1 共3部分

     第36章 使用本地动态sql 和dbms_sql  第37章 pl/sql 调整 第ⅴ部分 对象关系数据库  第38章 实现对象类型、对象视图和方法  第39章 收集器(嵌套表和可变数组)  第40章 使用大对象  第41章 面向对象的高级...

    Oracle存储过程基本语法介绍

    Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL;... 行4: NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句; 行5: END关键

    数据库基础

    §15.4 在 PL/SQL 中使用 sqlcode,sqlerrm 273 第十六章 存储过程和函数 276 §16.1 引言 276 §16.2 存储过程 276 §16.2.1 创建过程 276 §16.2.2 使用过程 278 §16.2.3 开发存储过程步骤 279 §16.2.3.1 编辑...

Global site tag (gtag.js) - Google Analytics