`

PLSQL中集合使用笔记1

阅读更多
PLSQL中集合使用笔记1

总体中PLSQL中的集合大致有:

1.索引表,也称为关联数组,可以让我们使用数字或字符串作下标来查找元素。(这有点和其他语言中的哈希表相类似。)
2.嵌套表可以容纳任意个数的元素,使用有序数字作下标。我们可以定义等价的SQL类型,把嵌套表存到数据库中去,并通过SQL语句进行操作。
3.变长数组能保存固定数量的元素(但可以在运行时改变它的大小),使用有序数字作为下标。同嵌套表一样,也可以保存到数据库中去,但灵活性不如嵌套表好。


理解嵌套表基本使用

在数据库中,嵌套表可以被当作单列的数据表来使用。Oracle在往嵌套表中存放数据时是没有特定顺序的。但是,当我们把检索出来的数据存放在PL/SQL变量时,所有行的下标就会从1开始顺序编号。这样,就能像访问数组那样访问每一行数据。
要点:
     1.1 从1开始,不是从0开始。且必须从1开始。
     1.2 没有上限,若是需要扩展,extend以下。
     1.3 定义语法:
        TYPE test IS TABLE OF varchar2(20);//定义个类型为字符串的嵌套表,表名:test。
    
     1.4 使用案例:将查询中的数据存放到嵌套表中:
--  定义嵌套表
           TYPE m_table IS TABLE OF varchar2(200);      --定义嵌套表  
          mp m_table := m_table();                     --新建一个类型

-- 定义游标        
              cursor c_test is
                   select p.testid from test_table p where p.roleid = '22';


-- 将数据放入嵌套表中
             for cc in c_test loop
                mp.extend;
                i_int := i_int + 1;
                mp(i_int) := cc.testid;
             end loop;

--循环遍历嵌套表
              for j in mp.first .. mp.last loop
                  dbms_out.put_line(j);
              end loop;
分享到:
评论
2 楼 inter12 2012-09-02  
y200767 写道
请问
              cursor c_test is
                   select p.testid from test_table p where p.roleid = '22';
中的 testid  是哪里来的啊

这个是我上下文没有交代清楚,test_table 表中存在一个字段名字叫testid
1 楼 y200767 2012-08-30  
请问
              cursor c_test is
                   select p.testid from test_table p where p.roleid = '22';
中的 testid  是哪里来的啊

相关推荐

    PLSQL学习笔记(1-7)

    本“PLSQL学习笔记”将逐步讲解这些概念,通过实例和练习帮助读者巩固理解,进一步提升在Oracle数据库开发中的技能。无论你是初学者还是有经验的开发者,这份笔记都能提供有价值的参考。通过深入学习和实践,你将...

    PLSQL 学习笔记

    声明游标后,可以使用FETCH语句获取当前行,然后在循环中使用。例如: ```sql DECLARE CURSOR c_emp IS SELECT * FROM employees; emp_rec employees%ROWTYPE; BEGIN OPEN c_emp; FETCH c_emp INTO emp_rec; ...

    plsql创建存储过程并创建job定时任务执行-详细笔记文档总结

    plsql创建存储过程并创建job定时任务执行详细笔记文档总结 在 Oracle 中,plsql 是一种强大的编程语言,可以用来创建存储过程和定时任务执行。在本文中,我们将详细介绍如何使用 plsql 创建存储过程并创建 job 定时...

    PLSQL笔记-从hello word到触发器,包,游标高级应用

    本笔记集合将带你从基础入门到深入掌握PLSQL的核心概念和技术,包括“Hello World”式的简单示例,触发器的使用,以及包和游标的高级应用。 首先,让我们从"Hello World"开始。在PLSQL中,你可以创建一个简单的存储...

    精通oracle 10g plsql 编程-学习笔记

    ### 精通Oracle 10g PL/SQL编程学习笔记 #### 一、PL/SQL综述 **1.1 PL/SQL的功能与作用** PL/SQL (Procedural Language for SQL) 是一种专门为Oracle数据库设计的过程化语言,它结合了SQL的数据处理能力与过程化...

    转:PLSQL开发笔记和小结

    8. **存储过程和函数**:存储过程是一组PLSQL语句的集合,可以在数据库中存储和调用,提高效率。函数则是返回一个值的存储过程,可以作为表达式的一部分使用。 9. **触发器**:触发器是响应特定数据库事件(如...

    plsql学习笔记整理.docx

    1. 数组类型是一组成员的集合,每个成员都有一个唯一的下标,他取决于成员在数组中的位置。 2. 在 PL/SQL 中数组类型时 VARRAY(可变数组)。 使用 %rowtype 1. 返回一个记录类型,其数据类型和数据库表中的数据...

    PLSQL笔记(EFRIOO&GUOH)1.doc

    根据给定的信息,本文将对《PLSQL笔记(EFRIOO&GUOH)1.doc》中的主要内容进行详细解析,涵盖数据库检索、数据操纵、事务控制、控制结构、复合数据类型等多个方面。 ### 一、检索单行数据 #### 1.1 使用标量变量接受...

    Oracle9i PLSQL 入门到精通读书笔记

    - 游标用于逐行处理SQL查询结果,通常在循环中使用。 - DECLARE语句中声明游标,OPEN语句打开游标,FETCH获取数据,CLOSE关闭游标。 7. **异常处理** - 使用EXCEPTION部分可以捕获并处理运行时错误,如NO_DATA_...

    PLSQL笔记整理

    - 在`FORALL`语句中使用部分集合元素。 - 使用`INDECS OF`子句。 - 使用`VALUES OF`子句。 - 使用`SQL%BULK_ROWCOUNT`属性。 - **BULK COLLECT子句**: - 在`SELECT INTO`语句中使用`BULK COLLECT`子句。 - ...

    PLSQL学习笔记

    这些知识点只是PLSQL学习笔记的冰山一角,实际学习过程中还会涉及更多的细节,如游标的高级用法、PLSQL的性能优化、数据库设计原则等。通过深入理解和实践,你将能够更好地掌握这个强大的数据库编程语言,并在Oracle...

    PLSQL程序设计

    在实际应用中,PLSQL常常与Oracle的存储过程、触发器、包(PACKAGE)一起使用。存储过程是一组PLSQL语句的集合,可作为独立的数据库对象进行调用;触发器则是在特定数据库事件发生时自动执行的PLSQL代码,如INSERT、...

    PLSQL Developer 介绍

    **1. PL/SQL 编辑器** - **语法增强与帮助功能**:提供语法高亮显示、SQL 和 PL/SQL 的语法帮助。 - **对象描述与代码助手**:显示当前对象的信息,并提供代码建议。 - **编译器提示与完善功能**:在代码编写过程中...

    Parch 学习笔记系列(十七本)

    1. **CXF学习笔记**:CXF是一个开源的Java框架,用于构建和开发服务导向架构(SOA)和RESTful应用程序。笔记会讲解如何使用CXF创建和消费Web服务,包括SOAP和REST接口的实现,以及CXF的配置和调试技巧。 2. **...

    oralce 数据库 DBA 实战 运维经验 PLSQL 存储过程编程开发【视频加文档】

    oralce 数据库 DBA 实战 运维经验 PLSQL 存储过程编程开发【视频加文档】,运维笔记,资料集合,经验分享。

Global site tag (gtag.js) - Google Analytics