【请教】前辈们,关于引用游标的一个小问题
今天学到了游标,有道题老是报“
ORA-06550 必须声明组件错误。”
刚接触Oracle,还请前辈们不吝赐教啊~
题目:使用引用游标查询EMP表,随着外界传入的字段列表不同,输出不同的查询结果。
要求输入三个不同字段;
我的做法:
declare
type newcur is ref cursor;
mycur newcur;
cmd1 varchar2(10);
cmd2 varchar2(10);
cmd3 varchar2(10);
curRow emp%rowtype;
sql1 varchar(200);
begin
cmd1 :='&字段1';
cmd2 :='&字段2';
cmd3 :='&字段3';
sql1 := 'select ' || cmd1 ||' as c1,' || cmd2 ||' as c2,' || cmd3 ||' as c3 from emp';
open mycur for sql1;
loop
fetch mycur into curRow;
exit when mycur%notfound;
dbms_output.put_line(curRow.c1 ||' '||curRow.c2||' '||curRow.c3);
end loop;
end;
可总提示第19行的c1必须声明,不知道哪里错了,
麻烦帮忙看看错哪里吧,先谢谢了~
------解决方案--------------------换种方式写一下
declare type newcur is ref cursor;
mycur newcur; cmd1 varchar2(10);
cmd2 varchar2(10);
cmd3 varchar2(10);
--curRow emp%rowtype;
c1 varchar2(100);
c2 varchar2(100);
c3 varchar2(100);
sql1 varchar(200); begin
cmd1 :='&字段1'; cmd2 :='&字段2'; cmd3 :='&字段3';
--sql1 := 'select '
------解决方案-------------------- cmd1
------解决方案--------------------' as c1,'
------解决方案--------------------