为了简化单行多列数据的处理,可以使用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;
分享到:
相关推荐
2. **数据类型**:PL/SQL支持多种数据类型,包括数值类型(如NUMBER)、字符串类型(如VARCHAR2、CHAR)、日期时间类型(如DATE)、布尔类型(BOOLEAN)以及复合数据类型(如记录和数组)。 3. **变量声明和赋值**...
同时,PL/SQL支持多种数据类型,包括数值类型(NUMBER)、字符类型(VARCHAR2, CHAR)、日期类型(DATE)等,以及复合类型如记录(RECORD)和表类型(TABLE)。 此外,PL/SQL的包(PACKAGE)概念是将相关的过程和...
第14章 使用复合数据类型 第15章 使用游标 第16章 异常处理 . 第17章 本地动态sql 第18章 pl/sql过程 第19章 pl/sql函数 第20章 pl/sql包 第21章 触发器 第22章 使用对象类型 第四部分 pl/sql系统...
第14章 使用复合数据类型 第15章 使用游标 第16章 异常处理 . 第17章 本地动态sql 第18章 pl/sql过程 第19章 pl/sql函数 第20章 pl/sql包 第21章 触发器 第22章 使用对象类型 第四部分 pl/sql系统...
2. **变量和数据类型**:PL/SQL支持多种数据类型,包括数值型(如NUMBER)、字符型(VARCHAR2和CHAR)、日期型(DATE)、布尔型(BOOLEAN)以及复合和对象类型。 3. **流程控制**:PL/SQL提供了IF-THEN-ELSIF-ELSE...
6. **复合类型**:PL/SQL支持数组、集合和记录等复合类型,这些使得处理复杂数据结构变得可能。手册会详细介绍这些类型的创建和使用。 7. **包(Packages)**:包是将相关的过程、函数和变量封装在一起的一种方式,...
2. **复合数据类型**:介绍PL/TABLE、记录类型(%ROWTYPE)以及集合类型(VARRAY和NESTED TABLE),这些都是处理大量数据或构建复杂数据结构的关键工具。 3. **游标**:讲解如何使用显式和隐式游标进行查询和遍历...
2. **变量和数据类型**:PL/SQL支持多种数据类型,包括数值型(NUMBER、BINARY_INTEGER、PLS_INTEGER)、字符型(VARCHAR2、CHAR)、日期型(DATE)、布尔型(BOOLEAN)以及复合数据类型如记录和数组。 3. **控制...
PL/SQL 提供了多种数据类型,例如数字、字符、日期等。数字类型包括整数、浮点数等。字符类型包括字符、字符串等。日期类型包括日期、时间等。 十、基本类型(系统预定义类型) PL/SQL 提供了多种基本类型,例如...
《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...
复合数据类型是PL/SQL的一大特色,包括记录(records)和集合(collections)。记录允许你组合不同类型的字段,而集合则可以存储一组相同类型的数据,如数组。它们提供了更灵活的数据处理方式。 函数在PL/SQL中扮演...
3. **数据类型**:了解PL/SQL的数据类型,如NUMBER、VARCHAR2、DATE、BOOLEAN等,以及如何声明和初始化它们。 4. **SQL语句的嵌入**:PL/SQL允许在程序中直接嵌入SQL语句,进行数据查询、插入、更新和删除操作。 5...
6. **复合数据类型**:理解数组、对象和嵌套表等复合数据类型,这些在处理大量相关数据时非常有用。 7. **包**:了解包的概念,它是将相关的过程、函数和变量组合在一起的机制,有助于提高代码的组织性和可维护性。...
1. **基本语法和数据类型**:了解PL/SQL的基本结构,包括声明变量、常量、游标、表类型等,并熟悉各种内置数据类型,如NUMBER、VARCHAR2、DATE等。 2. **控制结构**:掌握流程控制语句,如IF-THEN-ELSIF、CASE、FOR...
- **数据类型**:介绍了PL/SQL支持的各种数据类型,包括基本数据类型和复合数据类型等。 - **控制结构**:如循环、条件语句等。 - **异常处理**:如何处理程序运行时可能出现的各种异常情况。 2. **高级编程技术*...
2. **变量与数据类型**:PL/SQL支持多种数据类型,如数值型(NUMBER)、字符型(VARCHAR2, CHAR)、日期型(DATE)、布尔型(BOOLEAN)等,以及复合类型如记录(RECORD)和表类型(TABLE)。 3. **流程控制**:包括...
6. **复合类型**:如记录类型和表类型,这些允许自定义数据结构,增强了PL/SQL的数据处理能力。 7. **动态SQL**:通过EXECUTE IMMEDIATE和DBMS_SQL模块,你可以编写和执行运行时构建的SQL语句,这在处理灵活的数据...
2. **数据类型**:PL/SQL支持多种数据类型,包括数值型(如NUMBER、INTEGER)、字符型(如VARCHAR2、CHAR)、日期型(DATE)、布尔型(BOOLEAN)以及复合数据类型(如记录和表类型)。 3. **变量声明**:在PL/SQL中...
PL/SQL支持多种数据类型,包括数值型、字符型、日期时间型、布尔型、复合型等。例如,`NUMBER`用于表示数值,`VARCHAR2`用于存储可变长度的字符串,`DATE`用于存储日期和时间信息。 ### 3. 变量与常量 在PL/SQL中...
4. **复合数据类型**: - 数组:声明和操作PL/SQL索引数组和关联数组。 - 表类型:使用PL/SQL表类型进行集合操作。 -记录类型:定义和使用记录类型,类似于结构或对象。 5. **程序单元**: - 包(PACKAGE):...