第07讲 复合数据类型.pptVIP

  • 1
  • 0
  • 约1.33万字
  • 约 43页
  • 2018-06-06 发布于河北
  • 举报
第07讲 复合数据类型

使用复合数据类型 当使用标量变量处理oracle数据时,每个标量变量只能存放单个值,也就是说只能处理单行单列的数据。如果要使用标量变量处理单行多列数据,那么必须要定义多个变量接收不同列的数据,为了简化单行多列数据的处理,可以使用PL\SQL记录,为了保留并处理多行单列的数据,可以使用索引表,嵌套表和varray,为了处理多行多列的数据,应该使用PL\SQL记录表 PL\SQL记录record 定义PL\SQL记录 当使用PL\SQL记录时,应用开发人员可以自己定义记录类型和记录变量,也可以使用%rowtype属性直接定义记录变量 自定义记录 declare type v_type is record (ename varchar2(20), sal number(20), hdate date) ; v_mytype v_type; begin select ename,empno,hiredate into v_mytype from emp where mgr is null; dbms_output.put_line(v_mytype.ename|| ||v_mytype.sal|| ||v_mytype.hdate); end; %rowtype 型记录 declare v_mytype emp%rowtype; begin select * into v_mytype from emp where mgr is null; dbms_output.put_line(v_mytype.ename|| ||v_mytype.sal|| ||v_mytype.hiredate); end; 在select中使用record Select into 刚刚已经演示过 在SELECT INTO 中使用记录成员 declare v_mytype emp%rowtype; begin select ename,sal into v_mytype.ename,v_mytype.sal from emp where mgr is null; dbms_output.put_line(v_mytype.ename|| ||v_mytype.sal|| ||v_mytype.hiredate); end; 在insert语句中使用记录 在values 中使用记录变量 declare v_mytype emp%rowtype; begin v_mytype.ename:=pengxiao; v_mytype.sal:=500; v_mytype.hiredate :=sysdate; insert into emp values v_mytype; end; 在values 中使用记录成员 declare v_mytype emp%rowtype; begin v_mytype.ename:=pengxiao; v_mytype.sal:=500; v_mytype.hiredate :=sysdate; insert into emp (ename,sal,hiredate) values (v_mytype.ename,v_mytype.sal,v_mytype.hiredate); end; Update 中使用记录 Update 中使用记录变量 declare v_mytype emp%rowtype; begin v_mytype.ename:=pengxiao; v_mytype.sal:=500; v_mytype.hiredate :=sysdate; update emp set row =v_mytype where mgr is null; end; Update 中使用记录成员 declare v_mytype emp%rowtype; begin v_mytype.ename:=pengxiao; v_mytype.sal:=500; v_mytype.hiredate :=sysdate; update emp set ename=v_mytype.ename,sal=v_mytype.sal where mgr is null; end; Delete 中使用记录 Delete 只能使用记录成员不能使用记录变量 declare v_mytype emp%rowtype; begin v_mytype.deptno:=30

文档评论(0)

1亿VIP精品文档

相关文档