存储过程问题---麻烦各位了,帮忙解决下 谢谢!

xjswuai 2009-11-13 09:52:36
create or replace procedure P_Test is
v_col1 number;
r_emp SO_CHARGE@db_dqyy%rowtype;
v_newid varchar2(10);
v_charge_id varchar2(10);
cursor cur is
select * from SO_CHARGE@db_dqyy;
begin

open cur;
loop
fetch cur
into r_emp;

exit when cur%notfound;

if length(r_emp.so_charge_type_id) = 5 then
begin
select b.newid

into v_newid
from query_charge_to_boss b
where b.so_charge_type_id = r_emp.so_charge_type_id;
end;
end if;

if length(r_emp.so_charge_type_id) = 3 then
begin
select c.charge_id
into v_charge_id
from so_charge_cat_id_to_boss c
where c.charge_id = r_emp.so_charge_type_id;
end;
end if;
dbms_output.put_line(v_newid||'---'||v_charge_id);
end loop;

end P_Test;


两个if体中查询的 charge_id 与 newid 我想让它们在一排打印出来。
可惜的是 两个查询结果都大于1行,运行就会在 select b.newid 这里报错。可能就是因为返回结果太多造成的。

麻烦各位大侠给解决下。。。最后结果能让两个字段并列打印出。 谢谢
...全文
88 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Adebayor 2009-11-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xjswuai 的回复:]
所有的都要
[/Quote]
a:10条记录 b:5条记录 dbms_output.put_line(a || b)就是50条吗?
小灰狼W 2009-11-13
  • 打赏
  • 举报
回复
两个查询结果都会大于一行,那你要将他们并排显示出现,要怎么关联?
比如fetch后,两个查询一个返回2条记录,一个返回3条记录,你要这么处理
大致可以在这个游标循环里面再加一个游标循环。剩下的就是2个查询的对应问题
Adebayor 2009-11-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xjswuai 的回复:]
现在无法解决的是
select b.newid

          into v_newid
          from query_charge_to_boss b
      where b.so_charge_type_id = r_emp.so_charge_type_id;

这个无法通过,提示  no data found
[/Quote]
这样写的话必须保证b.newid不为空
cosio 2009-11-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xjswuai 的回复:]
所有的都要
[/Quote]

如果所有的打印,就要写成游标!
xjswuai 2009-11-13
  • 打赏
  • 举报
回复
所有的都要
iqlife 2009-11-13
  • 打赏
  • 举报
回复
两个查询结果都大于1行,运行就会在 select b.newid 这里报错
你想取一条结果呢,还是所有的都要?
如果是所有的都要,用游标,多条的两个结果如何打印
xjswuai 2009-11-13
  • 打赏
  • 举报
回复
现在无法解决的是
select b.newid

into v_newid
from query_charge_to_boss b
where b.so_charge_type_id = r_emp.so_charge_type_id;

这个无法通过,提示 no data found
Adebayor 2009-11-13
  • 打赏
  • 举报
回复
你想打印什么样的结果呀?

3,490

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧