`

Oracle_学习开发子程序_复合数据类型一(PL/SQL记录)

阅读更多
   为了简化单行多列数据的处理,可以使用PL/SQL记录;为了保留并处理多行当列的数据,可以使用索引表、嵌套表和varray;为了处理多行多列的数据,应该使用PL/SQL记录表。
一、PL/SQL记录
   PL/SQL记录有益于处理单行多列的数据,当使用PL/SQL记录时,应用开发人员即可以自定义记录类型和记录变量,也可以使用%rowtype属性直接定义记录变量。
1、自定义PL/SQL记录
  当使用自定义的PL/SQL记录时,需要分别自定义PL/SQL记录类型和记录变量。定义记录类型和记录变量的语法如下:
  type type_name is record(
    field_declaration1,
    field_declaration2,
    ..................,
    );
  identifier type_name;

如上所示,type_name用于指定自定义记录类型名称(is record表示记录类型);field_declaration1、field_declaration2用于指定记录成员的定义;identifier用于指定记录变量名,当为记录类型指定多个成员时,记录成员之间用逗号隔开,示例如下:
declare
   type emp_record_type is record(
    v_name emp.name%type,
    v_address emp.address%type     
   );
   emp_record emp_record_type;

2、使用%rowtype属性定义记录变量
    %rowtype属性可以基于表或视图定义记录变量,当使用该属性定义记录变量时,记录成员名称和类型与表或视图列的名称和类型完全相同,为了简化表或视图所有列数据的处理,应当使用该属性定义记录变量,使用%rowtype定义变量的语法如下:
  identifier table_name%rowtype;
  或
  identifier view_name%rowtype;
当使用%rowtype属性定义记录变量时,记录成员个数、名称、类型与表或视图列个数、名称、类型完全相同,示例如下:
dept_record dept%rowtype;
view_record view%rowtype;
3、使用PL/SQL记录
  (1)、在select into语句中使用PL/SQL记录
    select into语句用于检索单行数据,如果选择列表包含多个列或表达式,如果使用PL/SQL记录用于接收数据,从而简化了数据处理,当select into语句中使用PL/SQL记录时,即可以直接使用记录变量,也可以使用记录成员。
  示例一、在select into 语句中使用记录变量
    当在select into 语句中直接使用记录变量时,选择列表中的列和表达式的顺序、个数类型必须要与记录成员的顺序、个数、类型完全匹配,示例如下:
declare
type temp_record_type is record(
v_name cip_temps.NAME%type,
v_address cip_temps.ADDRESS%type,
v_age cip_temps.AGE%type,
v_id cip_temps.ID%type
);
temp_record temp_record_type;
begin
select name,address,age,id into temp_record from cip_temps where id=6;
dbms_output.put_line(temp_record.v_name||':'||temp_record.v_address||':'||temp_record.v_age||':'||temp_record.v_id);
end;

在引用记录成员时必须要用记录变量.记录成员。
  示例二、在select into 语句中使用记录成员
declare
type temp_record_type is record(
v_name cip_temps.NAME%type,
v_address cip_temps.ADDRESS%type,
v_age cip_temps.AGE%type,
v_id cip_temps.ID%type
);
temp_record temp_record_type;
begin
select name,address,age,id into temp_record.v_name,temp_record.v_address,temp_record.v_age,temp_record.v_id from cip_temps where id=6;
dbms_output.put_line(temp_record.v_name||':'||temp_record.v_address||':'||temp_record.v_age||':'||temp_record.v_id);
end;

(2)、在insert语句中使用PL/SQL记录
  在oracle9i之前,如果使用PL/SQL记录插入数据,只能使用记录成员,在oracle9i开始,可以使用记录变量,由于插入数据时,列的顺序、个数、类型必须要与记录成员的顺序、个数、类型完全匹配,所示使用%rowtype
示例一、在values中使用PL/SQL记录变量
declare
temp_record_rowtype cip_temps%rowtype;
begin
temp_record_rowtype.name:='11';
temp_record_rowtype.age:='11';
temp_record_rowtype.address:='11';
temp_record_rowtype.id:=200;
insert into cip_temps values temp_record_rowtype;
end;

示例二、在values中使用PL/SQL记录成员
declare
temp_record_rowtype cip_temps%rowtype;
begin
temp_record_rowtype.name:='11';
temp_record_rowtype.age:='11';
temp_record_rowtype.address:='11';
temp_record_rowtype.id:=200;
insert into cip_temps values temp_record_rowtype;
end;

(3)、update、delete语句同insert语句,示例省略。
分享到:
评论

相关推荐

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

    通过上述对Oracle 9i PL/SQL程序设计笔记的总结,我们可以看到PL/SQL作为一种强大的数据库编程语言,提供了丰富的功能来支持数据处理、事务控制及业务逻辑的实现。掌握PL/SQL的不同块类型及其使用方法对于开发高效、...

    oracle_oracle_oraclepl/sql_

    2. **变量和数据类型**:PL/SQL支持多种数据类型,包括数值型(如NUMBER)、字符型(VARCHAR2和CHAR)、日期型(DATE)、布尔型(BOOLEAN)以及复合和对象类型。 3. **流程控制**:PL/SQL提供了IF-THEN-ELSIF-ELSE...

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

    - **新特性概述**:介绍Oracle 11g中引入的与PL/SQL相关的新增功能,例如新的数据类型、函数、性能优化技术等。 - **性能提升技术**:提供了一些具体的例子和最佳实践,展示了如何利用Oracle 11g的新特性来进一步...

    ORACLE PL/SQL从入门到精通

    ORACLE PL/SQL是从入门到精通的专业知识,涵盖了数据库开发与管理的多个方面,包括...这本书籍将为读者提供一个全面、系统的学习路径,帮助数据库管理员、开发人员深入理解并掌握ORACLE PL/SQL的强大功能和应用技巧。

    Oracle PL/SQL专家指南-高级PL/SQL解决方案的设计与开发

    2. **复合数据类型**:介绍PL/TABLE、记录类型(%ROWTYPE)以及集合类型(VARRAY和NESTED TABLE),这些都是处理大量数据或构建复杂数据结构的关键工具。 3. **游标**:讲解如何使用显式和隐式游标进行查询和遍历...

    Oracle PL/SQL学习官方教材

    Oracle PL/SQL是一种强大的编程语言,它将SQL与过程编程语言的特性相结合,为数据库开发提供了丰富的功能。在Oracle数据库环境中,PL/SQL是开发高效、可靠和可维护的数据库应用程序的关键工具。以下是对"Oracle PL/...

    ORACLE PL/SQL 程序设计(第五版)

    《ORACLE PL/SQL 程序设计(第五版)》是Oracle数据库开发领域的一本经典教程,专注于讲解如何使用PL/SQL这一强大的过程化语言进行数据库编程。这本书旨在帮助读者掌握PL/SQL的基本概念、语法和高级特性,以便在实际...

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

    PL/SQL是Oracle公司开发的一种过程化语言,全称为Procedural Language/Structured Query Language,它是SQL的一个扩展,专门用于处理Oracle数据库系统。这个“PL/SQL工具”显然是一个用于辅助管理和操作Oracle数据库...

    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"开始你的学习之旅,逐步探索这个强大而灵活的数据库编程语言。

    Oracle8 PL/SQL程序设计

    PL/SQL,全称Procedural Language/Structured Query Language,是Oracle数据库提供的一种过程化编程语言,它结合了SQL的查询功能和传统编程语言的控制结构,使得数据库管理和应用程序开发更为高效和灵活。...

    oracle pl/sql fundamentals

    2. **变量和数据类型**:深入学习PL/SQL中的变量声明,包括内置的数据类型(如NUMBER、VARCHAR2、DATE等),以及如何初始化和操作这些变量。 3. **控制流程语句**:学习条件判断(IF-THEN-ELSIF-ELSE)和循环结构...

    Oracle8 PL/SQL高级程序设计.rar

    2. **变量和数据类型**:PL/SQL支持多种数据类型,包括数值类型(如NUMBER)、字符串类型(如VARCHAR2)、日期类型(如DATE)以及Oracle特定的数据类型如REF、BLOB等。 3. **控制流语句**:PL/SQL包含条件语句(IF....

    Oracle2BPL-SQL.rar_oracle_pl/sql

    理解每种数据类型的用途和限制是学习PL/SQL的基础。 2. **流程控制语句**:包括条件判断(IF-THEN-ELSIF-ELSE)、循环(FOR、WHILE、LOOP)和异常处理(BEGIN-EXCEPTION-END)。这些语句使得PL/SQL可以实现复杂的...

    PL/SQL学习笔记

    PL/SQL是Oracle公司开发的一种过程化SQL扩展,它是Oracle数据库的重要组成部分,用于在数据库服务器上编写存储过程、函数、触发器、包等可执行代码。PL/SQL可以处理复杂的数据操作和业务逻辑,支持编程结构如循环、...

    oracle 经典资料及PL/SQL 使用指南 英文版

    PL/SQL是Oracle专为数据库管理设计的一种结构化查询语言,是Oracle开发人员进行数据库编程的核心工具。这篇“Oracle经典资料及PL/SQL使用指南”的英文版,将帮助学习者深入理解Oracle数据库的基础概念以及PL/SQL的...

    oracle sql and pl/sql

    1. **定义**:PL/SQL(Procedural Language for SQL)是一种过程化语言,它结合了 SQL 命令和过程式编程语句,使得开发人员能够编写更复杂的数据库应用程序。 2. **功能**: - 过程化代码执行:允许在数据库中执行...

    PL/SQL编程(电子版)

    **4.7 函数** 是PL/SQL中返回单一值的子程序,可以作为表达式的一部分在查询或计算中使用。 通过本章的学习,读者将能够理解和编写基本的PL/SQL代码,包括声明变量、控制流程、处理异常,以及创建和使用存储过程、...

    PL/SQL学习课件

    第四章“使用复合数据类型”会涵盖Oracle中的多种数据类型,如数组、记录和对象类型。这些复合数据类型使得存储和处理复杂数据结构成为可能,对于提高代码效率和灵活性有很大帮助。 第五章“游标”讨论了如何在PL/...

    PL/SQL编程基础知识

    - **程序包**:集合了一系列相关的子程序、类型定义和其他PL/SQL元素,便于管理和复用。 **2.3 标识符规则** PL/SQL中的标识符遵循以下规则: - 标识符长度不能超过30个字符。 - 第一个字符必须是字母。 - 不区分...

Global site tag (gtag.js) - Google Analytics