`
z_piaoyi
  • 浏览: 23160 次
  • 性别: Icon_minigender_2
  • 来自: 河北
社区版块
存档分类
最新评论

oracle复合变量记录类型与记录表类型的介绍及相关的案例

阅读更多
复合变量
   
   复合变量可以将不同的数据类型的多个值存储在一个单元中.由于复合数据类型可以有用户根据需要定义其结构,所以复合数据类型也称为自定义数据类型。
  PL/SQL提供了两种类型的复合数据类型:
记录类型
在记录类型中可以存储多个标量值,与数据库中的行相似
记录表类型
允许用户在程序代码中使用”表”,以便存储多个行的数据。它只在程序运行期间有效。类似于程序代码中集合|数组。

记录类型:
   必须使用TYPE语句定义记录类型的语法声明如下:
TYPE record_name is record(
Field_name data_type[not null, :=default value]
………
);
    
与%Rowtype不同之处是
   1、%rowtype查询的是全部数据
   2、记录类型必须使用type语法格式声明
//案例
SQL> declare
  2     type empinfo is record(  //声明一个记录类型
  3       empno number(4),
  4       ename varchar2(10),
  5       job  varchar2(9)
  6     );
  7 
  8   emp_data  empinfo; //声明一个记录类型的变量
  9  begin
10    select empno,ename,job into emp_data from emp where empno=7369; //查询的结果赋值给定义的变量
11    dbms_output.put_line(emp_data.empno||'/'||emp_data.ename||'/'||emp_data.job);
12  end;
13  /


记录表类型
   它可以处理多个记录或多个行记录。
为什么使用记录表类型呢?
因为我们查询的数据的往往需要返回多行记录,所以需要记录表类型。

定义记录表类型
TYPE table_name is table of data_type[not null]
     Index by binary_integer;//主键的索引
declare
   type table_emp is table of emp%rowtype //创建一个表 此表的类型与emp表的类型一致
   index by binary_integer;
 
   type table_text is table of varchar2(20) //创建一个表 此表具有一个varchar2列的简单表
   index by binary_integer;
  
   empt  table_emp; //声明记录表类型的变量
   tabtext table_text;
begin


案例:
SQL> declare
  2     type table_emp is table of emp%rowtype
  3     index by binary_integer;
  4     empt table_emp;
  5  begin
  6     empt(1).ename:='wangyi';
  7     dbms_output.put_line(empt(1).ename);
  8  end;
  9  /

//返回总记录
SQL> declare
  2     type table_emp is table of emp%rowtype
  3     index by binary_integer;
  4     empt table_emp;
  5  begin
  6     dbms_output.put_line(empt.count);
  7  end;
  8  /

0  //没有记录


//删除的操作
  表名.Delete(记录数);

//检索记录变量
First:获取第一个的索引
Next:下一个的索引 但是必须有参数
Last:最后一个的索引
SQL> declare
  2     type table_emp is table of emp%rowtype
  3     index by binary_integer;
  4     empt table_emp;
  5     i number(2):=1;
  6  begin
  7      while i<10
  8      loop
  9        empt(i).ename:='wangyi';
10        i:=i+1;
11      end loop;
12 
13     dbms_output.put_line(empt.count);
14 
15     empt.delete(2);
16 
17     dbms_output.put_line(empt.count);
18 
19     dbms_output.put_line(empt.first);
20     dbms_output.put_line(empt.next(2));
21     dbms_output.put_line(empt.last);
22  end;
23  /

9
8
1
3
9





分享到:
评论

相关推荐

    Oracle查询优化改写技巧与案例

    本篇文章将深入探讨Oracle查询优化的一些改写技巧,并结合实际案例进行讲解。 一、索引的合理利用 1. 唯一性索引:为经常用作查询条件的列创建唯一性索引,可以确保查询时快速定位到单条记录,例如主键和唯一约束...

    Oracle查询优化改写 技巧与案例

    以下是一些关于Oracle查询优化改写的技巧和案例分析: 1. **使用索引**:索引是提高查询速度的关键。选择正确的索引类型(如B树、位图或函数索引)和创建策略,可以显著提升查询性能。例如,对于经常在WHERE子句中...

    韩顺平玩转oracle视频的文档

    - **复合变量(composite)**:如数组、记录等复合数据类型。 ### PL/SQL的进阶——控制结构(分支,循环,控制) 这部分讲解了PL/SQL中的控制结构,包括条件分支、循环等。 - **条件分支语句**:IF、CASE等。 - **...

    Oracle的编程工具包1

    9. **高级特性**:如PL/SQL记录类型、复合类型、游标变量、异步处理、PL/SQL表和集合等。 10. **实际应用案例**:包含实际数据库项目中的PL/SQL应用,如数据迁移、报表生成、业务逻辑处理等。 通过深入学习和实践...

    Oracle olap用户手册

    - **系统需求**:Oracle OLAP 对硬件和软件环境有一定的要求,例如操作系统版本、内存大小、处理器类型等。 - **安装过程**:安装 Oracle OLAP 通常包括数据库服务器的安装、OLAP 组件的添加以及必要的配置步骤。 - ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    从就业与择业的角度来讲,计算机相关专业的大学生从事oracle方面的技术是职业发展中的最佳选择。 其一、就业面广:全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的...

    精通Oracle.10g.PL_SQL编程

    此外,书中还讨论了PL/SQL与Oracle数据库的交互,如如何调用数据库的内置函数、操作表和索引、以及事务管理。了解这些内容,读者将能够更好地设计和实现高效的数据访问逻辑。 在性能优化方面,书中会介绍如何编写...

    一个oracle实例

    案例中提到的建立测试包,可以包含一组相关的过程和变量,方便测试和管理。包还可以提供私有数据类型和公共接口,有助于模块化和封装代码。 通过这个案例,学习者可以逐步了解如何在Oracle环境中进行数据库设计、...

    oracle教学6

    - **定义**: 复合类型允许开发者自定义记录类型,包含多个字段。 - **声明**: `DECLARE TYPE t_student IS RECORD (name students.name%TYPE, age students.age%TYPE);` - **示例**: ```sql DECLARE TYPE t_...

    Oracle9i 数据库性能优化

    - **案例1:大表查询优化**:通过添加复合索引和分区表的方式显著提高了查询性能。 - **案例2:高并发事务处理**:利用事务隔离级别和锁定机制有效避免了死锁现象。 ##### 4.2 最佳实践 - **定期检查索引效率**:...

    Mastering Oracle PL SQL Practical Solutions

    此外,书中还介绍了PL/SQL中的各种数据类型,如数字类型、字符类型、日期时间类型以及复合类型,如数组和记录,帮助读者理解如何在PL/SQL中存储和操作不同类型的数据。 #### 2. 存储过程与函数 存储过程和函数是PL...

    《Oracle从入门到精通》书中代码

    《Oracle从入门到精通》是一本旨在帮助初学者和进阶者掌握Oracle数据库系统的书籍,其配套代码提供了实践操作的机会,使理论与实践相结合,更好地理解Oracle的强大功能和使用技巧。Oracle是全球广泛使用的数据库管理...

    oracle sql & plsql

    - **数据类型**: 包括基本数据类型如NUMBER、VARCHAR2,以及复合数据类型如RECORD。 - **语法结构**: 包括变量声明、控制结构(如IF、LOOP)等。 #### 七、PL/SQL 函数、过程、包 - **函数**: 用于执行计算并返回单个...

    Oracle课程目录

    - **scott用户**:介绍scott用户在Oracle中的默认表结构,包括`EMP`, `DEPT`, `SALGRADE`等表的字段和用途。 - **表结构分析**:详细解析每个表的字段含义及其相互之间的关联关系。 - **示例查询**:给出基于scott...

    Oracle PL SQL实例精讲(中英文版)

    Oracle PL/SQL是一种强大的编程语言,它将关系数据库的强大功能与结构化编程语言的灵活性结合在一起,主要用于在Oracle数据库环境中创建复杂的业务逻辑和数据处理程序。这个“Oracle PL SQL实例精讲(中英文版)”...

    Oracle笔记。。。

    通过阅读"Oracle学习笔记 - - JavaEye技术网站.mht"文件,你可以深入学习到上述这些知识点,并结合实际案例进行练习,逐步成为一名熟练的Oracle数据库开发者或管理员。记住,理论知识与实践操作相结合,才能真正掌握...

    最容易上手的PL/SQL学习教程-有经过测试的丰富案例

    在§2.4中,我们学习了PL/SQL的变量类型,包括基本类型(如NUMBER、VARCHAR2等)、复合类型(如记录类型、数组类型)、%ROWTYPE(用于创建与表列结构对应的变量)以及LOB(Large Object)类型,后者用于存储大量非...

    Oracle常用傻瓜问题1000问

    3. **表空间与数据文件**:在Oracle中,数据存储在表空间中,表空间由一个或多个数据文件组成。管理表空间可以解决磁盘空间不足或优化I/O性能的问题。 4. **索引**:索引是提高查询速度的关键,Oracle支持B树、位图...

Global site tag (gtag.js) - Google Analytics