问答详情
源自:3-2 PL/SQL光标之光标的语法和第一个实例

来换种变量赋值了怎么就不行了呢?

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;
/


提问者:慕前端0336099 2016-04-22 18:13

个回答

  • qq_骑着蜗牛去旅行_03471935
    2016-06-26 17:42:50

    你这里:aa emp%rowtype  使用的是记录型变量,指的是一行的所有的列:empno,ename,empjob,mgr...等8列,但你的光标:cursor hi is select ename,sal from emp; 就取到两列,你把两列的值往八列里面插肯定不行的!好好复习下记录型变量的使用

  • 慕粉3245186
    2016-04-24 15:15:51

    你使用record类型来存储游标中的数据试试

    typer record_emp is record

    (

    var_ename emp.ename%type,

    var_sal emp.ename%type

    );

    aa record_emp