declare type is t_sor ref cursor; v_sor t_sor; i varchar2(5) default '1' ; j varchar2(10); n varchar2(10); begin j := 's'||i; open v_sor for 'select '||j||' test from atest'; loop fetch v_sor into n; exit when v_sor%notfound; dbms_output.put_line(n); end loop; close v_sor; end; /
create or replace function test return varchar2 is i varchar2(5) default '1' ; j varchar2(10); begin j := 's'||i; select test into j from atest; return j; end;创建好了函数,就可以取返回值了 select test from dual;或者只看结果,不返回值 set serverout ondeclare i varchar2(5) default '1' ; j varchar2(10); begin j := 's'||i; select test into j from atest; dbms_output.put_line('j='||j); end;但是还有一个问题,如果atest中有多条记录,会出错
type is t_sor ref cursor;
v_sor t_sor;
i varchar2(5) default '1' ;
j varchar2(10);
n varchar2(10);
begin
j := 's'||i;
open v_sor for 'select '||j||' test from atest';
loop
fetch v_sor into n;
exit when v_sor%notfound;
dbms_output.put_line(n);
end loop;
close v_sor;
end;
/
is
i varchar2(5) default '1' ;
j varchar2(10);
begin
j := 's'||i;
select test into j from atest;
return j;
end;创建好了函数,就可以取返回值了
select test from dual;或者只看结果,不返回值
set serverout ondeclare
i varchar2(5) default '1' ;
j varchar2(10);
begin
j := 's'||i;
select test into j from atest;
dbms_output.put_line('j='||j);
end;但是还有一个问题,如果atest中有多条记录,会出错