oracle 中的%type,%rowtype 【转】
2010-05-23 11:12
oracle 中的%type,%rowtype
1、使用%TYPE
在许多情况下,PL/SQL变量可以用来存储在数据库表中的数据。在这种情况下,变量应该拥有与表列相同的类型。例如,students表的first_name列的类型为VARCHAR2(20),我们可以按照下述方式声明一个变量
DECLARE
v_FirstName VARCHAR2(20);
但是如果first_name列的定义改变了会发生什么(比如说表改变了,first_name现在的类型变为VARCHAR2(25))?那就会导致所有使用这个列的PL/SQL代码都必须进行修改。如果你有很多的PL/SQL代码,这种处理可能是十分耗时和容易出错的。
这时,你可以使用”%TYPE”属性而不是将变量类型硬性编码。
例如:
DECLARE
v_FirstName students.first_name%TYPE;
通过使用%TYPE,v_FirstName变量将同students表的first_name列的类型相同(可以理解为将两者邦定起来)。
每次匿名块或命名块运行该语句块以及编译存储对象(过程、函数、包、对象类和触发器)时,就会确定该类型。
使用%TYPE是非常好的编程风格,因为它使得PL/SQL更加灵活,更加适应于对数据库定义的更新。
例如:
declare
v_id hr.jobs.job_id%type;
v_title hr.jobs.job_title%type;
begin
select job_id,job_title into v_id,v_title
from hr.jobs
where job_id ='&aa';
dbms_output.put_line('序号'||v_id );
dbms_output.put_line('名称'||v_title);
end;
执行,我们输入aa变量的值:AD_VP
输出结果为:
序号AD_VP
名称Administration Vice President
2 使用%ROWTYPE
在PL/SQL中将一个记录声明为具有相同类型的数据库行的作法是很常见的。PL/SQL提供了%ROWTYPE运算符,使得这样的操作更为方便。
例如:
DECLARE
v_StudentRecord students%ROWTYPE;
将定义一个记录,该记录中的字段将与students表中的列相对应。
例如:
declare
v_jobs hr.jobs%rowtype;
begin
select * into v_jobs
from hr.jobs
where job_id ='&aa';
dbms_output.put_line('序号'||v_jobs.job_id );
dbms_output.put_line('名称'||v_jobs.job_title);
end;
执行,我们输入aa变量的值:AD_VP
输出结果为:
序号AD_VP
名称Administration Vice President
分享到:
相关推荐
Oracle PL/SQL 中的 %TYPE 和 %ROWTYPE 应用详解 Oracle PL/SQL 是一种强大的编程语言,广泛应用于数据库开发中。在 PL/SQL 中,变量的声明和使用是非常重要的。其中,%TYPE 和 %ROWTYPE 是两个非常重要的概念,...
总结来说,理解并熟练运用PL/SQL中的自定义复合变量、`%TYPE`和`%ROWTYPE`是提升Oracle数据库编程能力的关键步骤。通过它们,我们可以更加高效地管理数据,编写出更加灵活和健壮的PL/SQL程序。在实际项目中,这些...
本文将详细介绍Oracle中的游标概念、分类以及如何在PL/SQL中使用游标。 #### 二、游标的基本概念 游标是数据库中一种特殊的数据结构,它提供了从数据库中检索数据的方法,并允许程序逐行处理这些数据。游标可以在...
这个程序块的关键是使用%rowtype 属性声明变量,然后使用select into语句将数据从emp表中fetch 到变量中,然后使用if-elsif语句来判断雇员的职位,并执行相应的加薪处理。 这些练习题涵盖了PL/SQL程序块的多方面...
以上内容涵盖了Oracle PL-SQL中的一些基础且重要的知识点,包括变量声明与赋值、输出设置、表操作、使用`%TYPE`和`%ROWTYPE`、记录和集合的使用。通过掌握这些核心概念,开发者可以在Oracle数据库环境中更高效地编写...
此外,我们还探讨了%TYPE和%ROWTYPE属性的用法,这有助于更灵活地处理Oracle数据库中的数据类型。 总之,熟练掌握Oracle游标及其相关属性的使用对于提高数据库应用程序的效率至关重要。希望本文能够为正在学习...
Oracle PL/SQL编程基础是数据库管理中不可或缺的一部分,主要用于编写结构化程序,处理复杂的数据库操作。本实验旨在帮助学生掌握PL/SQL的基本概念和语法,包括变量的使用、%TYPE和%ROWTYPE特性,以及记录变量的操作...
根据提供的标题、描述、标签及部分内容,我们可以提炼出Oracle数据库中的几个重要的知识点,这些知识点主要集中在存储过程(Stored Procedure)与函数(Function)的创建与使用上,同时也涉及到了游标(Cursor)的...
TYPE t_emp IS TABLE OF s_emp%ROWTYPE INDEX BY BINARY_INTERGER; v_emp t_emp; BEGIN SELECT * INTO v_emp(100) FROM s_emp WHERE id = 1; SELECT * INTO v_emp(200) FROM s_emp WHERE id = 2; DBMS_...
Oracle数据库是世界上最流行的关系型数据库管理系统之一,其强大的功能和高效的数据处理能力使其在企业级应用中占据主导地位。在Oracle数据库中,数据类型扮演着至关重要的角色,它定义了可以存储在表列中的数据类型...
%type用法,%rowtype用法,TYPE用法 游标的使用 for 循环 loop循环 while循环 if / else 的用法 case 的用法 标题 错误定义 error的设定 exception用法 标题 存储过程及函数 procedure 的建立...
在Oracle数据库中,游标是一种重要的机制,用于处理查询结果集中的数据。游标允许程序逐行处理数据,这在需要对多行数据进行循环处理时非常有用。本文档旨在提供一个全面的指南,帮助初学者理解和掌握如何在Oracle ...
declare type v_table is table of t_user%rowtype index by binary_integer; my_table v_table; 在上面的代码中,我们首先声明了一个多维数组类型 `v_table`,它可以存储多个记录。然后,我们创建了一个 `v_table`...
在Oracle数据库中,`EXECUTE IMMEDIATE`是一个非常强大的特性,允许在运行时动态执行SQL语句或PL/SQL块。这一功能自Oracle 8i版本的DBMS_SQL包引入以来,极大地增强了PL/SQL的灵活性和动态性。通过`EXECUTE ...
Oracle 中 Using 用法 Oracle 动态 SQL 介绍以及 Using 用法示例 在 Oracle 中,使用 Using 语句可以实现动态 SQL 的绑定变量,提高 SQL 语句的灵活性和安全性。本文将对 Oracle 中 Using 用法进行详细的介绍,并...
在PL/SQL中,`%TYPE`和`%ROWTYPE`是两个重要的特性。`%TYPE`用于声明变量与已存在表列的数据类型相同,如`v_ename emp.ename%type;`。`%ROWTYPE`则创建一个与指定表行结构完全匹配的记录变量,如`v_emp_rec emp%...
Oracle中的游标是PL/SQL编程中的重要概念,主要用于处理SQL查询返回的多行结果集。游标允许程序逐行处理结果集,提供了对数据库数据的动态访问和操作能力。 游标分为两种类型:显式游标和隐式游标。显式游标是...