`
q272156430
  • 浏览: 275779 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

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;  
 
分享到:
评论

相关推荐

    Oracle资料学习PL/SQL必备

    2. **数据类型**:PL/SQL支持多种数据类型,包括数值类型(如NUMBER)、字符串类型(如VARCHAR2、CHAR)、日期时间类型(如DATE)、布尔类型(BOOLEAN)以及复合数据类型(如记录和数组)。 3. **变量声明和赋值**...

    Oracle PL/SQL实战(待续)

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

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(一)

     第14章 使用复合数据类型  第15章 使用游标  第16章 异常处理 . 第17章 本地动态sql  第18章 pl/sql过程  第19章 pl/sql函数  第20章 pl/sql包  第21章 触发器  第22章 使用对象类型 第四部分 pl/sql系统...

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(二)

     第14章 使用复合数据类型  第15章 使用游标  第16章 异常处理 . 第17章 本地动态sql  第18章 pl/sql过程  第19章 pl/sql函数  第20章 pl/sql包  第21章 触发器  第22章 使用对象类型 第四部分 pl/sql系统...

    oracle_oracle_oraclepl/sql_

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

    pl/sql最新中文手册

    6. **复合类型**:PL/SQL支持数组、集合和记录等复合类型,这些使得处理复杂数据结构变得可能。手册会详细介绍这些类型的创建和使用。 7. **包(Packages)**:包是将相关的过程、函数和变量封装在一起的一种方式,...

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

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

    Oracle PL/SQL实例编程(PL/SQL经典书籍)

    2. **变量和数据类型**:PL/SQL支持多种数据类型,包括数值型(NUMBER、BINARY_INTEGER、PLS_INTEGER)、字符型(VARCHAR2、CHAR)、日期型(DATE)、布尔型(BOOLEAN)以及复合数据类型如记录和数组。 3. **控制...

    Oracle 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以及如何有效地使用它。...

    Oracle PL/SQL语言初级教程

    复合数据类型是PL/SQL的一大特色,包括记录(records)和集合(collections)。记录允许你组合不同类型的字段,而集合则可以存储一组相同类型的数据,如数组。它们提供了更灵活的数据处理方式。 函数在PL/SQL中扮演...

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

    3. **数据类型**:了解PL/SQL的数据类型,如NUMBER、VARCHAR2、DATE、BOOLEAN等,以及如何声明和初始化它们。 4. **SQL语句的嵌入**:PL/SQL允许在程序中直接嵌入SQL语句,进行数据查询、插入、更新和删除操作。 5...

    Oracle PL/SQL by Example(4th Edition)

    6. **复合数据类型**:理解数组、对象和嵌套表等复合数据类型,这些在处理大量相关数据时非常有用。 7. **包**:了解包的概念,它是将相关的过程、函数和变量组合在一起的机制,有助于提高代码的组织性和可维护性。...

    Oracle8 PL/SQL程序设计

    1. **基本语法和数据类型**:了解PL/SQL的基本结构,包括声明变量、常量、游标、表类型等,并熟悉各种内置数据类型,如NUMBER、VARCHAR2、DATE等。 2. **控制结构**:掌握流程控制语句,如IF-THEN-ELSIF、CASE、FOR...

    Oracle PL/SQL programming(5th Edition)

    - **数据类型**:介绍了PL/SQL支持的各种数据类型,包括基本数据类型和复合数据类型等。 - **控制结构**:如循环、条件语句等。 - **异常处理**:如何处理程序运行时可能出现的各种异常情况。 2. **高级编程技术*...

    Oracle database 10g PL/SQL Programming代码

    2. **变量与数据类型**:PL/SQL支持多种数据类型,如数值型(NUMBER)、字符型(VARCHAR2, CHAR)、日期型(DATE)、布尔型(BOOLEAN)等,以及复合类型如记录(RECORD)和表类型(TABLE)。 3. **流程控制**:包括...

    《精通Oracle PL/SQL》源码

    6. **复合类型**:如记录类型和表类型,这些允许自定义数据结构,增强了PL/SQL的数据处理能力。 7. **动态SQL**:通过EXECUTE IMMEDIATE和DBMS_SQL模块,你可以编写和执行运行时构建的SQL语句,这在处理灵活的数据...

    oracle9i--pl/sql

    2. **数据类型**:PL/SQL支持多种数据类型,包括数值型(如NUMBER、INTEGER)、字符型(如VARCHAR2、CHAR)、日期型(DATE)、布尔型(BOOLEAN)以及复合数据类型(如记录和表类型)。 3. **变量声明**:在PL/SQL中...

    oracle 11g PL/SQL

    PL/SQL支持多种数据类型,包括数值型、字符型、日期时间型、布尔型、复合型等。例如,`NUMBER`用于表示数值,`VARCHAR2`用于存储可变长度的字符串,`DATE`用于存储日期和时间信息。 ### 3. 变量与常量 在PL/SQL中...

    pl/sql 学习资料

    4. **复合数据类型**: - 数组:声明和操作PL/SQL索引数组和关联数组。 - 表类型:使用PL/SQL表类型进行集合操作。 -记录类型:定义和使用记录类型,类似于结构或对象。 5. **程序单元**: - 包(PACKAGE):...

Global site tag (gtag.js) - Google Analytics