变量定义

变量定义

处理单行多列的情况

定义记录变量:使用%rowtype

自定义记录类型

type emp_record_type is record(

       name   emp.ename%type,

       salary   emp.sal%type,

       dno   emp.deptno%type

  );

通过自定义记录类型查询表数据

declare

  --自定义记录类型

  type   emp_record_type is record(

       name   emp.ename%type,

       salary   emp.sal%type,

       dno   emp.deptno%type

  );

  --声明一个自定义类型的变量

  emp_record   emp_record_type;

begin

  select   ename,sal,deptno into emp_record from emp where empno = 7788;

    dbms_output.put_line(emp_record.name);

  select ename,sal   into emp_record.name,emp_record.salary from emp where empno = 7788;

    dbms_output.put_line(emp_record.name);

end;

注:在select into语句中直接使用记录变量时,选择列表中的列和表达式的顺序,个数、类型必须与记录成员的顺序、个数、类型完全匹配。

处理多行单列的数据

declare

  --自定义类型

  type   ename_table_type is table of emp.ename%type;

 

  --声明一个自定义类型的变量

  ename_table   ename_table_type;

begin

  select ename bulk collect into   ename_table from emp;

  for i in 1 ..   (ename_table.count) loop

      dbms_output.put_line(ename_table(i));

  end loop;

end;

删除记录并返回删除记录中的ename字段信息

declare

  --自定义类型

  type   ename_table_type is table of emp.ename%type;

 

  --声明一个自定义类型的变量

  ename_table   ename_table_type;

begin

  delete from emp where deptno is null returning ename bulk collect into   ename_table;

  for i in 1 ..   (ename_table.count) loop

    dbms_output.put_line(ename_table(i));

  end loop;

end;

处理多行多列数据

使用select .. bulk collect into语句处理多行多列数据

declare

  --自定义类型

  type   emp_table_type is table of emp%rowtype;

 

  --声明一个自定义类型的变量

  emp_table   emp_table_type;

begin

  select * bulk collect into emp_table   from emp;

  for i in 1 ..   (emp_table.count) loop

      dbms_output.put_line('雇员编号:' || emp_table(i).empno || ' 雇员名称:' ||emp_table(i).ename);

  end loop;

end;

posted @ 2012-08-21 18:37  心随梦飞[fosilzhou]  阅读(252)  评论(0编辑  收藏  举报