oracle存储过程 游标和动态赋值问题
发布网友
发布时间:2022-04-13 06:26
我来回答
共2个回答
热心网友
时间:2022-04-13 07:55
创建:
create or replace procere t_ts(ref_cur out sys_refcursor) AS
BEGIN
open ref_cur for SELECT leixing FROM diaobodan;
end t_ts;
调用:
declare
s_cur SYS_REFCURSOR;
v_leixing varchar2(100);
begin
t_ts(s_cur);
loop
fetch s_cur into vv_name;
exit when s_cur%notfound;
dbms_output.put_line(v_leixing);
end loop;
end;
是这个意思吗?追问是的,是的,
还有一个问题,就是 我想在下面给上面游标查询语句赋值条件该怎么来操作,
cursor a is select * from a where a=?
begin
a.setString(0,'1');--类似这种操作 该怎么弄
end
追答创建带参数的存储过程。例如传送数值参数p_num如下方式修改:
create or replace procere t_ts(ref_cur out sys_refcursor,p_mun in number)
调用语句: t_ts(s_cur,i); 把 i 值传给p_num。
热心网友
时间:2022-04-13 09:13
1.既然你在循环的时候存储变量到游标,又循环游标操作,为什么你不在一个循环中,得到返回值然后对返回值进行操作呢?
2.select * from a where a.id=? 在oracle中用select * from a where a.id=&a的形式实现,你可以试试 会提示你输入变量追问恩,这里就是不知道 循环中返回的值拿什么接受,只查到了游标可以
追答按照你的想法你可以存到表里或者存到数组中
type t_varray is varray(10) of number;
v_varray t_varray;