`
123003473
  • 浏览: 1040537 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

pl/sql 集合代码 的遍历方式

 
阅读更多
-- Created on 2011-10-12 by HUCHANGKUN 
declare 
  -- Local variables here
  i integer;
  V_LIST RECORDLIST := RECORDLIST();
  
  
  TYPE RECORD_OBJ IS RECORD(
       ID INTEGER,
       NAME LONG
  );
  
  V RECORD_OBJ;
/*不加的话就要变成:
declare
type tabletype1 is table of varchar2(9);
  table1 tabletype1=tabletype1();
begin   
  tabletype1.extend;
  table1(1):='成都市';
  tabletype1.extend;
  table1(2):='北京市';
end;
也就是说,加了index by binary_integer;tabletype1 类型的下标就是自增长的,tabletype1 类型在插入元素时,不需要初始化,不需要每次extend增加一个空间。


这个不是数组,是哈希
可以理解为一张表,只有两个字段 KEY,VALUE
KEY是主键,是唯一的,KEY的数据类型就是 INDEX BY XXX
*/
  --嵌套表 、 索引表、变长数组
  TYPE RECORD_OBJ_LIST IS TABLE OF RECORD_OBJ; --index by binary_integer;
  V_RECORD_OBJ_LIST RECORD_OBJ_LIST := RECORD_OBJ_LIST();
  --V_RECORD_OBJ_LIST RECORD_OBJ_LIST ;
  TYPE RECORD_ARRAY IS VARRAY(10) OF RECORD_OBJ;
  V_ARRAY RECORD_ARRAY := RECORD_ARRAY();
begin
  -- Test statements here
  FOR I IN 1 .. 10 LOOP
      V_LIST.EXTEND;
      V_LIST(I) := ITEMRECORD(I,I||'NAME');
      
      V_ARRAY.EXTEND;
      V.ID := I;
      V.NAME := 'NAME'||I;
      V_ARRAY(I) := V;
  END LOOP;
  
  FOR I IN 1 .. V_LIST.COUNT LOOP
      DBMS_OUTPUT.put_line('ID: '|| V_LIST(I).ID || ' NAME:' || V_LIST(I).NAME);
  END LOOP;
  
  FOR I IN 1 .. 20 LOOP
      V_RECORD_OBJ_LIST.EXTEND;
      V.ID := I;
      V.NAME := 'NAME'||I;
      V_RECORD_OBJ_LIST(I) := V;
  END LOOP;
  
  V_RECORD_OBJ_LIST.delete(3);
  
  FOR I IN V_RECORD_OBJ_LIST.FIRST .. V_RECORD_OBJ_LIST.LAST LOOP
      --if V_RECORD_OBJ_LIST(3) is null then
       --  dbms_output.put_line();
      --else 
      IF I<>3 THEN  
         DBMS_OUTPUT.put_line('ID:'||V_RECORD_OBJ_LIST(I).ID || ' NAME:'||V_RECORD_OBJ_LIST(I).NAME);   
      end if;
  END LOOP;
  
  DBMS_OUTPUT.put_line(V_RECORD_OBJ_LIST.COUNT);
  i:=V_RECORD_OBJ_LIST.FIRST;
  WHILE I IS NOT NULL
  LOOP
        DBMS_OUTPUT.put_line(V_RECORD_OBJ_LIST(I).ID);
        I := V_RECORD_OBJ_LIST.NEXT(I);
  END LOOP;
  DBMS_OUTPUT.put_line('-----------------');
  
  --对于可变数组来说是不可以删除
  --i:=V_ARRAY.TRIM;
  DBMS_OUTPUT.put_line('删除之前的数组长度'||V_ARRAY.COUNT);
  V_ARRAY.TRIM;
 DBMS_OUTPUT.put_line('删除之前的数组长度'||V_ARRAY.COUNT);
  i:=V_ARRAY.FIRST;
  LOOP 
   EXIT WHEN I IS NULL;
   DBMS_OUTPUT.put_line(V_ARRAY(I).ID);
   I:= V_ARRAY.NEXT(I);
  END LOOP;
  
  EXCEPTION 
            WHEN OTHERS THEN
            DBMS_OUTPUT.put_line(SQLCODE||'_'||SQLERRM);
end;
分享到:
评论

相关推荐

    pl/sql例题代码pl/sql例题代码pl/sql例题代码

    pl/sql例题代码pl/sql例题代码pl/sql例题代码

    Oracle PL/SQL程序设计(第5版)(套装上下册)

    《Oracle PL/SQL程序设计(第5版)(套装上下册)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何...

    pl/sql developer11.0

    pl/sql developer11.0下载 pl/sql developer11.0下载 pl/sql developer11.0下载

    PL/SQL Developer9.06

    PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用...PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要优势。

    PL/SQL User's Guide and Reference (官方CHM)

    PL/SQL, Oracle's procedural extension of SQL, is an advanced fourth-generation programming language (4GL). It offers modern features such as data encapsulation, overloading, collection types, ...

    Oracle PL/SQL语言初级教程

    PL/SQL是Oracle对标准数据库语言的扩展,Oracle公司已经将PL/SQL整合到Oracle 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本教程将以循速渐进的方式讲述PL/SQL基础语法,结构和组件、以及...

    Oracle PL/SQL实例精解 数据库建立代码

    Oracle PL/SQL实例精解 student模式 数据库建立代码 包括数据库的建立、索引等。样本数据的插入。

    PL/SQL免安装版

    在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算。PL/SQL免安装版,点击即用,非常方便!

    PL/SQL developer 12.07 注册码 可以使用

    PL/SQL developer 12.07 注册码 可以使用,不错,自己用过了,分享给大家

    PL/SQL Developer 客户端

    在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算。PL/SQL 只有 Oracle 数据库有。 MySQL 目前不支持 ...

    Oracle PL/SQL程序设计(第5版)(下册)第二部分

    第2章 创建并运行PL/SQL代码 21 第3章 语言基础 50 第2部分 PL/SQL程序结构 第4章 条件和顺序控制 77 第5章 用循环进行迭代处理 96 第6章 异常处理 118 第3部分 PL/SQL数据 第7章 使用数据 159 第8章 字符串 182 第9...

    PL/SQL 用户指南与参考

    第五章 PL/SQL集合与记录 第六章 PL/SQL与Oracle间交互 第七章 控制PL/SQL错误 第八章 PL/SQL子程序 第九章 PL/SQL包 第十章 PL/SQL对象类型 第十一章 本地动态SQL 第十二章 PL/SQL应用程序性能调优

    pl/sql develpment 8 下载

    pl/sql 下载pl/sql 下载pl/sql 下载pl/sql 下载pl/sql 下载pl/sql 下载pl/sql 下载pl/sql 下载pl/sql 下载pl/sql 下载pl/sql 下载pl/sql 下载pl/sql 下载pl/sql 下载pl/sql 下载pl/sql 下载pl/sql 下载pl/sql 下载pl...

    Oracle Database 12c PL/SQL开发指南 实例源代码

    Oracle Database 12c PL/SQL开发指南(第7版)书中示例的PL/SQL源代码

    pl/sql最新中文手册

    最新pl/sql7.0中文手册

    PL/SQL Developer v8.0.3 1510

    PL/SQL Developer 8.0.3 1510 含注册机 PL/SQL Developer is an Integrated Development Environment that is specifically targeted at the development of stored program units for Oracle Databases. Over ...

    一个对数据库的操作工具PL/SQLpl/sqL工具

    一个对数据库的操作工具PL/SQL,能够对ORACLE\SQL进行很好的帮助操作!

    Oracle PL SQL程序设计 上 第五版(代码示例)

    第2章 创建并运行pl/sql代码 21 第3章 语言基础 50 第2部分 pl/sql程序结构 第4章 条件和顺序控制 77 第5章 用循环进行迭代处理 96 第6章 异常处理 118 第3部分 pl/sql数据 第7章 使用数据...

    oracle10g_pl/sql

    oracle10g pl/sql完备教程,供初学者学习与开发者参考

    Pl/Sql程序设计

    1、PL/SQL简介 2、PL/SQL基础 3、记录和表 4、在PL/SQL中使用SQL 5、内置SQL函数 6、游标 7、过程和函数 ...

Global site tag (gtag.js) - Google Analytics