包头:
create or replace package test is type curcompany is ref cursor;
function aaa return curcompany; //已实现输出游标
procedure bbb(curaaa in curcompany,v_result out varchar); //输入参数为游标
end test;包体:
procedure bbb(curaaa in curcompany,v_result out varchar)is
v_code varchar(300);
v_name varchar(300);
v_rt varchar(5000);
mycur curcompany;
rec tcompany%rowtype;
begin
mycur := curaaa;
if mycur%isopen then
if mycur%found then
loop
FETCH mycur INTO rec;
v_code :=rec.companycode;
v_name :=rec.companyname;
v_rt := v_rt+';'+v_code+'-'+v_name;
exit when mycur%notFOUND ;
end loop;
close mycur; --
v_result := v_rt;
else
v_result := 'bottom';
end if ;
else
v_result := 'close';
end if ;
end;
end test;
在pl/sql里编译通过,在DELPHI里调用时总报ora-1002 fetch out of sequence 错误,不知为什么 ,哪位高手赐教?谢谢
create or replace package test is type curcompany is ref cursor;
function aaa return curcompany; //已实现输出游标
procedure bbb(curaaa in curcompany,v_result out varchar); //输入参数为游标
end test;包体:
procedure bbb(curaaa in curcompany,v_result out varchar)is
v_code varchar(300);
v_name varchar(300);
v_rt varchar(5000);
mycur curcompany;
rec tcompany%rowtype;
begin
mycur := curaaa;
if mycur%isopen then
if mycur%found then
loop
FETCH mycur INTO rec;
v_code :=rec.companycode;
v_name :=rec.companyname;
v_rt := v_rt+';'+v_code+'-'+v_name;
exit when mycur%notFOUND ;
end loop;
close mycur; --
v_result := v_rt;
else
v_result := 'bottom';
end if ;
else
v_result := 'close';
end if ;
end;
end test;
在pl/sql里编译通过,在DELPHI里调用时总报ora-1002 fetch out of sequence 错误,不知为什么 ,哪位高手赐教?谢谢
解决方案 »
- 求哪位达人帮小弟分析下StatspackReport
- 求教Oracle数据库,表的行级触发器(涉及一连串的触发)。现网问题,紧急求助!!!急!!!
- 电信难题,oracle字符集的显示!!!!!!!!
- 请教一个
- Oracle Timesten和Coherence区别
- 关于在oracle中查询表的奇怪问题
- 笨猫(*),笨猫(*),笨猫(*),笨猫(*)进,关于上次的sql语句!急..在线等!
- select * from table wehere name=null 为什么查不到 name列为空的数据
- oracle 启动问题
- 如何能动态的获取视图的字段名、数据,需要将数据拼接成JSON格式
- 请教如何用游标%found或者游标%notfound来判断只有一条记录的情况???
- ASP+ORACLE存储过程急救中。
select a1,a2 from table_1
where a1=p1
and a2=p2;open cur_test('1','2');
loop
fetch cur_test into v1,v2;
exit when cur_test%notfound;
.....
......
end loop;
close cur_test;
只需修改open cur_test(ppp,ppp);参数为过程传入的参数.