set serveroutput on
declare
cursor hi is select ename,sal from emp;
--光标就是集合来的 hi就是设置的数组变量
aa emp%rowtype;
begin
open hi;
loop
FETCH hi INTO aa ;
--取出 定义的变量放在集合里面 fetch根据记录变量一条条取出
EXIT when hi%notfound;
dbms_output.put_line(aa.ename||'的薪水是'|| aa.sal);
end loop;
close hi;
end;
/
你这里:aa emp%rowtype 使用的是记录型变量,指的是一行的所有的列:empno,ename,empjob,mgr...等8列,但你的光标:cursor hi is select ename,sal from emp; 就取到两列,你把两列的值往八列里面插肯定不行的!好好复习下记录型变量的使用
你使用record类型来存储游标中的数据试试
typer record_emp is record
(
var_ename emp.ename%type,
var_sal emp.ename%type
);
aa record_emp