ROWTYPE 数据类型实践和使用
实验环境
操作系统: linux 5.4
数据库: ORACLE 11.2.0.1.0 启用归档
日期:2010-09-03
实验目标
通过四个例子来告诉大家如合很好的使用rowtype 数据类型.
实验步骤
例1:
create table my_emp as select * from emp ;
DECLARE
v_emp_record my_emp%ROWTYPE;
BEGIN
v_emp_record.empno:=7900;
v_emp_record.ename:='WANGMIN';
v_emp_record.job:='SALESMAN';
v_emp_record.mgr:=7688;
v_emp_record.hiredate:=to_date(sysdate);
v_emp_record.sal:=9999;
v_emp_record.comm:=0;
v_emp_record.deptno:=10;
insert into my_emp values v_emp_record ;
end;
/
---说明部分---
1.创建一个名为my_emp 和emp 有相,同的数据的表
2.声明v_emp_record变量用来储存my_emp中数据
3.插入一条完整个的新数据
例:2
create table my_emp as select * from emp ;
DECLARE
v_emp_record my_emp%ROWTYPE;
BEGIN
v_emp_record.ename:='WANGMIN';
v_emp_record.job:='SALESMAN';
v_emp_record.hiredate:=to_date(sysdate);
v_emp_record.sal:=9999;
Insert into my_emp(ename,job,hiredate,sal) values(v_emp_record.ename,v_emp_record.job,v_emp_record.hiredate,v_emp_record.sal) ;
end;
/
---说明部分---
1.使用insert 插入部分的列 数据
2.to_date(sysdate)这里可以直接使用sysdate系统函数
例3
Create table my_dept as select * from dept;
DECLARE
v_dept_record my_dept%ROWTYPE;
BEGIN
v_dept_record.deptno:=50;
v_dept_record.dname:='MARKET';
v_dept_record.loc:='INDIA';
UPDATE my_dept SET ROW=v_dept_record WHERE deptno=50;
END;
/
--说明部分--
1.创建一个my_dept 表用来测试
2.定义一个v_dept_record变量用来存储rowtype 类型的数据 数据从my_dept中来
3.v_dept_record变量用的更新要更新的数据
4.ROW指出你要更新的数据(实际上的整个行进行更新)
例4
Create table my_dept as select * from dept;
DECLARE
v_dept_record my_dept%ROWTYPE;
BEGIN
v_dept_record.loc:='JAPAN';
UPDATE my_dept SET loc=v_dept_record.loc WHERE deptno=50;
END;
/
--说明部分--
1.更新特定的值 如上所示(很简单)
例5
Create table my_dept as select * from dept;
DECLARE
v_dept_record my_dept%ROWTYPE;
BEGIN
v_dept_record.deptno:=50;
DELETE FROM my_dept WHERE deptno=v_dept_record.deptno;
END;
/
--说明部分--
(如上所示很简单)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24546326/viewspace-672561/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24546326/viewspace-672561/