我的脚本如下:declare
type t_cur is ref cursor;
c_ideaid t_cur;
s_sql varchar(512);
cpc_id number(10);
cpc_grpid number(10) := 192543;
begin
s_sql := 'select ci.cpcideaid from cpcidea ci where ci.cpcgrpid = ' ||
cpc_grpid || ';';
dbms_output.put_line('s_sql ' || s_sql);
dbms_output.put_line('ideamodi_num ' || ideamodi_num);
dbms_output.put_line('cpc_grpid ' || cpc_grpid);
open c_ideaid for s_sql;
loop
fetch c_ideaid
into id_id;
exit when c_ideaid%NOTFOUND;
dbms_output.put_line('cpcideaid ' || id_id);
end loop;
close c_ideaid;
end;
总是提示在open c_ideaid for s_sql;有无效字符..
但是我写的function就没有问题,这样可以用;
请问大家这事怎么回事?
或者我有什么别的办法能达到在脚本中指定游标内容,而不是在declare阶段就指定出来;谢谢大家!!
type t_cur is ref cursor;
c_ideaid t_cur;
s_sql varchar(512);
cpc_id number(10);
cpc_grpid number(10) := 192543;
begin
s_sql := 'select ci.cpcideaid from cpcidea ci where ci.cpcgrpid = ' ||
cpc_grpid || ';';
dbms_output.put_line('s_sql ' || s_sql);
dbms_output.put_line('ideamodi_num ' || ideamodi_num);
dbms_output.put_line('cpc_grpid ' || cpc_grpid);
open c_ideaid for s_sql;
loop
fetch c_ideaid
into id_id;
exit when c_ideaid%NOTFOUND;
dbms_output.put_line('cpcideaid ' || id_id);
end loop;
close c_ideaid;
end;
总是提示在open c_ideaid for s_sql;有无效字符..
但是我写的function就没有问题,这样可以用;
请问大家这事怎么回事?
或者我有什么别的办法能达到在脚本中指定游标内容,而不是在declare阶段就指定出来;谢谢大家!!
'select ci.cpcideaid from cpcidea ci where ci.cpcgrpid = ' ||
cpc_grpid || ';'
--最后的分号多余了