PL/SQL入门--复合类型及集合
2012-08-01 12:12
483 查看
7.复合数据类型
7.1定义PL/SQL记录
自定义PL/SQL记录:需要定义PL/SQL记录类型和记录变量,identifier用于指定记录变量名
使用%rowtype属性定义记录变量:可以基于表或视图定义记录变量
当使用%ROWTYPE属性定义记录变量时,记录成员个数,名称,类型与表或视图列的个数,名称,类型完全相同.
在select into 语句中使用PL/SQL 记录
在select into 语句中使用记录变量
7.2在select into 语句中使用记录成员
7.3在insert语句中使用PL/SQL记录
在VALUES子句中使用记录变量
在VALUES子句中使用记录成员
7.4在UPDATE语句中使用PL/SQL记录
在SET子句中使用记录变量
在SET子句中使用记录成员
7.5在DELETE语句中使用PL/SQL记录:只能在DELETE语句中的WHERE子句中使用记录成员
7.1定义PL/SQL记录
自定义PL/SQL记录:需要定义PL/SQL记录类型和记录变量,identifier用于指定记录变量名
type type_name is record( field_declaration[, field_declaration]... ); identifier type_name;
declare type emp_record_type is record( name emp.ename%type, salary em.sal%type, dno emp.deptno%type); emp_record emp_record_type;
使用%rowtype属性定义记录变量:可以基于表或视图定义记录变量
当使用%ROWTYPE属性定义记录变量时,记录成员个数,名称,类型与表或视图列的个数,名称,类型完全相同.
dept_record dept%rowtype; emp_record emp%rowtype;
在select into 语句中使用PL/SQL 记录
在select into 语句中使用记录变量
set serveroutput on
declare type emp_record_type is record( name emp.ename%type, salary em.sal%type, dno emp.deptno%type); emp_record emp_record_type;
begin
select ename,sal,deptno into emp_record from emp where empno=&no;
dbms_output.put_line(emp_record.name);
end;
7.2在select into 语句中使用记录成员
declare type emp_record_type is record( name emp.ename%type, salary emp.sal%type, dna emp.deptno%type); emp_record emp_record_type; begin select ename,sal into emp_record.name,emp_record.salary from emp where empno=&no; dbms_output.put_line(emp_record.name); end;
7.3在insert语句中使用PL/SQL记录
在VALUES子句中使用记录变量
declare dept_record dept%rowtype; begin dept_record.deptno:=50; dept_record.dname:='administrator'; dept_record.loc:='beijing'; insert int dept values dept_record; end;
在VALUES子句中使用记录成员
declare dept_record dept%rowtype; begin dept_record.deptno:=60; dept_record.dname:='sales'; insert into dept (deptno,dname) values (dept_record.deptno,dept_record.dname); end;
7.4在UPDATE语句中使用PL/SQL记录
在SET子句中使用记录变量
declare dept_record dept%rowtype; begin dept_record.deptno:=30; dept_record.dnama:='sales'; dept_record.loc:='shanghai'; update dept set row=dept_record where deptno=30; end;
在SET子句中使用记录成员
declare dept_record dept%rowtype; begin dept_record.loc:='guangzhou'; update dept set loc=dept_record.loc where deptno=10; end;
7.5在DELETE语句中使用PL/SQL记录:只能在DELETE语句中的WHERE子句中使用记录成员
declare dept_record dept%rowtype; begin dept_record.deptno:=50; delete from dept where deptno=dept_record.deptno; end; 感谢April-MyHou!
相关文章推荐
- PL/SQL入门--复合类型及集合(3)
- PL/SQL入门--复合类型及集合(2)
- PL/SQL_使用复合数据类型2(PL/SQL集合)
- Oracle 10g复合数据类型pl/sql集合学习六——索引表、嵌套表、变长数组
- PL/SQL_使用复合数据类型3(多级集合)
- PL/SQL使用复合数据类型4(集合操作符、比较集合)
- PL/SQL复合数据类型—record,集合(索引表,嵌套表,VARRAY)—之四
- pl/sql入门第二章--复合数据类型
- PL/SQL复合数据类型(集合与记录)
- PL/SQL学习(复合数据类型与游标)
- PL/SQL每日一题:TABLE()和集合类型定义
- PL/SQL_使用复合数据类型1(PL/SQL记录)
- PL/SQL定义部分之二复合数据类型
- PL/SQL 集合类型
- pl/sql复合数据类型_pl/sql记录类型
- pl/sql集合类型
- oracle pl/sql之sql中的复合变量之记录类型
- Oracle PL/SQL复合数据类型
- oracleday19(复合类型 游标变量 pl/sql 进阶 条件分支语句 loop )
- pl/sql 复合类型,游标