pl/sql记录类型
2016-07-29 00:00
183 查看
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记录类型
- oracle复合数据类型学习五——pl/sql记录
- PL/SQL:记录类型 (定义,使用,注意点)
- PL/SQL_使用复合数据类型1(PL/SQL记录)
- oracle pl/sql之sql中的复合变量之记录类型
- Oracle PL/SQL开发基础(第十六弹:记录类型)
- PL/SQL-记录类型
- 使用复合数据类型——PL/SQL记录
- 【Oracle】PL/SQL——基本语法,记录类型和控制流程
- PL/SQL 记录类型
- Oracle PL/SQL 程序设计读书笔记 - 第11章 记录类型
- pl/sql 记录(Record)类型
- PL/SQL中用光标查询多条记录
- 第十章 PL/SQL对象类型
- 记录一个PL/SQL调试语句
- PL/SQL数据类型和效率分析
- 如何用SQL查询语句获取Oracle表 树形结构的记录(PL/SQL )