`
wtuiiktm
  • 浏览: 831 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

PL/SQL表

 
阅读更多
一,什么是PL/SQL表?
首先PL/SQL表和记录(Record)一样,都是复合数据类型。可以看做是一种用户自定义数据类型。
PL/SQL表由多列单行的标量构成的临时索引表对象。组成类似于一维数组。
区别和联系记录(Record)的单行多列和物理存储数据的表。
Record + PL/SQL表可以进行数据的多行多列存储。
生命周期在程序块内。

二,PL/SQL表的组成结构
PL/SQL表只有两列,其中第一列为索引列为Integer类型索引列,9i后可以支持字符索引。第二列为用户自定义列,声明用户可用列类型.
通过索引列中的索引值来操作PL/SQL表中对应的用户自定义列。类似于键值对。
确保索引值的唯一性。如果索引值重复不会报错,会覆盖前面的值。

三,如何创建和使用PL/SQL表?

①声明PL/SQL表类型对象
  语法:
   TYPE  PL/SQL表名  IS TABLE  OF 可用列类型  [NOT NULL]
    INDEX BY BINARY_INTEGER;
 
  可用列类型可以为Oracle的数据类类型以及用户自定义类型;
 
  属性方法:
   count --返回pl/sql表的总行数;
   delect --删除pl/sql表的所有内容;
   delect(行数) --删除pl/sql表的指定的行;
   delct(开始行,结束行) --删除pl/sql表的多行;
   first --返回表的第一个INDEX;
   next(行数) --这个行数的下一条的INDEX;
   last --返回表的最后一个INDEX;

②声明PL/SQL表类型变量:
  语法:
   PL/SQL表类型变量名   PL/SQL表类型;
 
③数据填充和访问
  语法:
   PL/SQL表类型变量名(索引列值) := 填充声明类型值;
  
   PL/SQL表类型变量名.属性方法名;
 
例子:
Declare
  Type  MyTabType  Is  Table  Of  VarChar2(10)  Index By  Binary_Integer;
  MyTab  MyTabType;
  vN  Number(4);
Begin
  MyTab(1) :=  ''A'';
  MyTab(2) :=  ''B'';
  MyTab(3) :=  ''C''; --覆盖前面索引值为3对应的列值B
  vN := MyTab.First;
  DBMS_OUTPUT.PUT_LINE(''First index:''||''  ''||vN ||''  '');
  vN := MyTab.Last;
  DBMS_OUTPUT.PUT_LINE(''last index:''||''  ''||vN);
 
  DBMS_OUTPUT.PUT_LINE(''删除index 3 后 First值:''||''  ''||MyTab(MyTab.First)); 
  DBMS_OUTPUT.PUT_LINE(''Last值:''||''  ''||MyTab(MyTab.Last));
End;


例子:使用循环填充和访问PL/SQL表
Declare
  Type  MyTabType  Is  Table  Of  VarChar2(10)  Index  By  Binary_Integer;
  MyTab MyTabType;
  vN  Number(10);
Begin
  For varE In (select  empno,ename from empa order by ename)
  Loop
   MyTab(varE.empno) := varE.ename;
  End Loop;
  vN := MyTab.First;
  For i in 1..MyTab.count
  Loop
       dbms_output.put_line(vN||''  ''||myTab(vN));
       vN := myTab.next(vN);
    End Loop;
End;

例子:向PL/SQL表中插入数据
Declare
  Type  MyTabType  Is  Table  Of  VarChar2(10)  Index  By  Binary_Integer;
  MyTab  MyTabType;
Begin
  MyTab(1) :=  ''A'';
  MyTab(2) :=  ''B'';
  MyTab(3) :=  ''C'';
  DBMS_OUTPUT.PUT_LINE(''index 3:''||''  ''||MyTab(3));
  MyTab(3) := ''D''; --覆盖前面索引值为3对应的列值B
  DBMS_OUTPUT.PUT_LINE(''index 3:''||''  ''||MyTab(3));
End;

分享到:
评论

相关推荐

    pl/sql表空间插件

    "pl/sql表空间插件"是为了简化在PL/SQL环境中创建表空间的过程而设计的工具。通常,创建表空间需要执行SQL命令,如`CREATE TABLESPACE`,并指定一系列参数,包括数据文件的位置、大小、自动扩展选项等。这个插件则...

    DBAtools for PL/SQL表空间管理器

    PL/SQL Developer是Oracle数据库当前最流行的开发工具之一,它在ORACLE数据库开发设计方面功能强大,使用方便,但是数据库管理方面一直比较欠缺。 DBATools For PL/SQL Developer 是一款PL/SQL Developer的辅助插件...

    pl/sql最新中文手册

    10. **PL/SQL对象类型**:这部分可能涉及Oracle的面向对象特性,如定义对象类型、对象变量、对象表和继承。 11. **PL/SQL与Java、C等其他语言的互操作性**:Oracle提供了与多种编程语言接口的机制,手册会讲解如何...

    oracle10g_pl/sql

    Oracle 10g PL/SQL 是Oracle数据库系统中用于创建和管理存储过程、函数、触发器等数据库对象的编程语言。本教程旨在为初学者提供一个全面的学习平台,同时也为经验丰富的开发者提供参考资料。PL/SQL是Oracle特有的...

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

    2. **数据处理**:通过PL/SQL,用户可以直接对数据库表进行增删改查操作,使用SELECT、INSERT、UPDATE、DELETE等SQL语句。 3. **游标**:PL/SQL支持游标,允许用户逐行处理查询结果,这对于处理大量数据时非常有用...

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

    5. **集合类型**:包括数组(PLS_INTEGER索引的PL/SQL表)和关联数组(索引由非数字类型的值定义),以及如何在集合中插入、删除和迭代元素。 6. **包(PACKAGE)**:创建和使用包来组织相关的过程和函数,实现模块...

    pl/sql developer11.0

    PL/SQL Developer是一款由Allround Automations公司开发的专业Oracle数据库开发工具,专为编写、调试、测试和管理PL/SQL代码而设计。标题中的“pl/sql developer11.0”指的是该软件的第11个主要版本。在本文中,我们...

    Oracle PL/SQL实战(待续)

    同时,PL/SQL支持多种数据类型,包括数值类型(NUMBER)、字符类型(VARCHAR2, CHAR)、日期类型(DATE)等,以及复合类型如记录(RECORD)和表类型(TABLE)。 此外,PL/SQL的包(PACKAGE)概念是将相关的过程和...

    Oracle资料学习PL/SQL必备

    PL/SQL(Procedural Language/Structured Query Language)是Oracle专为数据库操作设计的一种过程化编程语言,结合了SQL的强大查询功能与高级编程语言的控制结构,使得数据库管理员和开发人员能够更高效、安全地管理...

    pl/sql 学习资料

    -索引组织表(IOT)、物化视图(Materialized View):与PL/SQL结合使用的高级表结构。 9. **PL/SQL在实际项目中的应用**: - 应用服务器和客户端交互:理解PL/SQL在分布式系统中的角色。 -事务处理:理解事务的...

    pl/sql64位

    PL/SQL是Oracle数据库系统中的一个关键组件,全称为Procedural Language/Structured Query Language,是一种结合了SQL和过程编程语言的工具,主要用于编写数据库应用程序。64位的PL/SQL开发者工具对于那些处理大数据...

    oracle 9i pl/sql程序设计笔记

    此匿名块展示了如何使用PL/SQL声明变量、插入数据到表中以及使用`DBMS_OUTPUT`包在屏幕上显示数据。值得注意的是,为了使`DBMS_OUTPUT.PUT_LINE`函数生效,需要确保服务器输出(Server Output)已开启,可通过命令`...

    ORACLE PL/SQL从入门到精通

    ORACLE PL/SQL是从入门到精通的专业知识,涵盖了数据库开发与管理的多个方面,包括触发器、过程、函数、软件包、异常处理、游标、循环、分支、变量使用、数据库安装等关键知识点。 触发器是数据库中用来保证数据...

    oracle pl/sql从入门到精通 配套源代码

    此外,PL/SQL还支持集合类型,如VARRAY(可变数组)和TABLE(表类型),这对于处理大量数据非常有用。 这本书的配套源代码可能会涵盖以下几个方面: 1. **基础操作**:包括简单的SQL查询、变量声明、流程控制...

    pl/sql 免安装,绿色版pl/sql

    5. **报表和图表**:PL/SQL Developer提供了一定的报表生成功能,可以生成关于数据库对象的各种统计报告,如表空间使用情况、索引分析等,为数据库性能优化提供参考。 6. **连接管理**:用户可以创建多个数据库连接...

    PL/SQL学习笔记

    参考类型是记录的引用,用于在PL/SQL程序中操作数据库表中的行。 PL/SQL支持多种流程控制语句,包括条件语句(如IF和CASE)以及循环语句(如FOR、WHILE和LOOP)。这些控制语句用于实现程序的逻辑判断和重复执行等...

    PL/SQL VCS插件安装包+PL/SQL

    PL/SQL VCS插件是为开发者提供的一种增强工具,它与PL/SQL Developer整合,目的是为了更好地管理和控制Oracle数据库中的SQL脚本和存储过程的版本。这个安装包结合了Version Control System (VCS)的功能,如Visual ...

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

    ### Oracle PL/SQL程序设计(第5版)(上下册)知识点概述 #### 一、PL/SQL编程基础 - **PL/SQL简介**:PL/SQL(Procedural Language for SQL)是Oracle数据库的一种内嵌式过程化语言,用于增强SQL的功能。它允许在SQL...

    PLSQL.zip_oracl_oracle pl/sql ppt_pl sql ppt tutorial_pl/sql_pls

    "PLSQL.zip_oracl_oracle pl/sql ppt_pl sql ppt tutorial_pl/sql plsql.ppt"这个压缩包提供了学习PL/SQL的基础材料,通过"第一章 pl-sql介绍.ppt"开始你的学习之旅,逐步探索这个强大而灵活的数据库编程语言。

    PL/SQL Developer 远程连接Oracle数据库

    PL/SQL Developer是一款专为Oracle数据库设计的集成开发环境,它极大地简化了PL/SQL语言的编写、调试和管理任务。远程连接Oracle数据库是PL/SQL Developer的一项关键功能,允许用户在本地计算机上操作和管理远程...

Global site tag (gtag.js) - Google Analytics