pl/sql记录类型
2009-08-13 16:08
267 查看
1.定义plsql记录
可以自定义记录类型和记录变量。
也可以使用%rowtype属性定义记录变量。
自定义plsql记录
需要分别定义记录类型和记录变量。
例如:
declare
type emp_record_type is record( //定义记录类型
name emp.ename%type, //记录成员
sal emp.sal%type,
job emp.job%type
);
emp_record emp_record_type; //声明emp_record记录变量
使用%ROWTYPE属性定义记录变量
%ROWTYPE可以基于表或视图定义记录变量。当使用该属性定义记录变量时,记录成员的名称和类型与表或视图列的名称和类型完全相同。
例如:
declare
emp_record emp%rowtype;
2.使用plsql记录。
在select into语句中使用plsql记录。如果选择列表包含的多个列和表达式,并且使用标量接收数据,就需要定义多个标量,如果使用plsql记录接收数据就只需要定义一个记录变量即可,从而简化了数据的处理。
在select..into语句中使用plsql记录时,既可以使用记录变量,也可以使用记录成员。
在select..into中使用记录变量。
例如:
declare
type emp_record_type is record(
v_no emp.empno%type,
v_name emp.ename%type,
v_sal emp.sal%type
);
emp_record emp_record_type;
begin
select empno,ename,sal into emp_record from emp where empno=6044;
dbms_output.put_line(emp_record.v_no);
dbms_output.put_line(emp_record.v_name);
dbms_output.put_line(emp_record.v_sal);
end;
注意:当引用记录成员时,必须在成员明之前加记录变量名作为前缀。
在select..into中使用记录成员。
例如:
declare
type emp_record_type is record(
v_no emp.empno%type,
v_name emp.ename%type,
v_sal emp.sal%type
);
emp_record emp_record_type;
begin
select empno,sal,ename into emp_record.v_no,emp_record.v_sal,emp_record.v_name
from emp where empno=6044;
dbms_output.put_line(emp_record.v_no);
dbms_output.put_line(emp_record.v_name);
dbms_output.put_line(emp_record.v_sal);
end;
注意:选择列表项和记录成员的匹配问题。
在insert语句中使用plsql记录(使用记录成员)
例如:
declare
temp_record temp%rowtype;
begin
temp_record.CUSTOMER_NAME:='张三';
temp_record.CITY:='北京';
insert into temp values(temp_record.CUSTOMER_NAME,temp_record.CITY);
end;
在updat语句中使用plsql记录(使用记录成员)
例如:
declare
temp_record temp%rowtype;
begin
temp_record.CUSTOMER_NAME:='王五';
temp_record.CITY:='上海';
update temp set temp.customer_name=temp_record.CUSTOMER_NAME,
city=temp_record.CITY
where CUSTOMER_NAME='张三';
end;
在delete语句中使用plsql记录
例如:
declare
temp_record temp%rowtype;
begin
temp_record.CUSTOMER_NAME:='王五';
delete from temp where temp.customer_name=temp_record.CUSTOMER_NAME;
end;
可以自定义记录类型和记录变量。
也可以使用%rowtype属性定义记录变量。
自定义plsql记录
需要分别定义记录类型和记录变量。
例如:
declare
type emp_record_type is record( //定义记录类型
name emp.ename%type, //记录成员
sal emp.sal%type,
job emp.job%type
);
emp_record emp_record_type; //声明emp_record记录变量
使用%ROWTYPE属性定义记录变量
%ROWTYPE可以基于表或视图定义记录变量。当使用该属性定义记录变量时,记录成员的名称和类型与表或视图列的名称和类型完全相同。
例如:
declare
emp_record emp%rowtype;
2.使用plsql记录。
在select into语句中使用plsql记录。如果选择列表包含的多个列和表达式,并且使用标量接收数据,就需要定义多个标量,如果使用plsql记录接收数据就只需要定义一个记录变量即可,从而简化了数据的处理。
在select..into语句中使用plsql记录时,既可以使用记录变量,也可以使用记录成员。
在select..into中使用记录变量。
例如:
declare
type emp_record_type is record(
v_no emp.empno%type,
v_name emp.ename%type,
v_sal emp.sal%type
);
emp_record emp_record_type;
begin
select empno,ename,sal into emp_record from emp where empno=6044;
dbms_output.put_line(emp_record.v_no);
dbms_output.put_line(emp_record.v_name);
dbms_output.put_line(emp_record.v_sal);
end;
注意:当引用记录成员时,必须在成员明之前加记录变量名作为前缀。
在select..into中使用记录成员。
例如:
declare
type emp_record_type is record(
v_no emp.empno%type,
v_name emp.ename%type,
v_sal emp.sal%type
);
emp_record emp_record_type;
begin
select empno,sal,ename into emp_record.v_no,emp_record.v_sal,emp_record.v_name
from emp where empno=6044;
dbms_output.put_line(emp_record.v_no);
dbms_output.put_line(emp_record.v_name);
dbms_output.put_line(emp_record.v_sal);
end;
注意:选择列表项和记录成员的匹配问题。
在insert语句中使用plsql记录(使用记录成员)
例如:
declare
temp_record temp%rowtype;
begin
temp_record.CUSTOMER_NAME:='张三';
temp_record.CITY:='北京';
insert into temp values(temp_record.CUSTOMER_NAME,temp_record.CITY);
end;
在updat语句中使用plsql记录(使用记录成员)
例如:
declare
temp_record temp%rowtype;
begin
temp_record.CUSTOMER_NAME:='王五';
temp_record.CITY:='上海';
update temp set temp.customer_name=temp_record.CUSTOMER_NAME,
city=temp_record.CITY
where CUSTOMER_NAME='张三';
end;
在delete语句中使用plsql记录
例如:
declare
temp_record temp%rowtype;
begin
temp_record.CUSTOMER_NAME:='王五';
delete from temp where temp.customer_name=temp_record.CUSTOMER_NAME;
end;
相关文章推荐
- PL/SQL:记录类型 (定义,使用,注意点)
- PL/SQL 记录类型
- pl/sql复合数据类型_pl/sql记录类型
- PL/SQL_使用复合数据类型1(PL/SQL记录)
- 【Oracle】PL/SQL——基本语法,记录类型和控制流程
- pl/sql 记录(Record)类型
- oracle复合数据类型学习五——pl/sql记录
- PL/SQL复合数据类型(集合与记录)
- 使用复合数据类型——PL/SQL记录
- Oracle PL/SQL 程序设计读书笔记 - 第11章 记录类型
- pl/sql记录类型
- pl/sql 复合类型,记录实例
- PL/SQL-记录类型
- oracle pl/sql之sql中的复合变量之记录类型
- Oracle PL/SQL开发基础(第十六弹:记录类型)
- 10.PL_SQL――PL_SQL中的复合数据类型之RECORDS
- PL/SQL中的数据类型隐式转换规则
- 源码-PL/SQL从入门到精通-第八章-记录与集合-Part 3
- PL/SQL中的集合类型(Collections in PL/SQL)
- PL/SQL学习笔记之数据类型中的标量、LOB