首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

存储过程字段并列打印

2014-01-28 
create or replace procedure P_Test isv_col1numberr_empSO_CHARGE@db_dqyy%rowtypev_newid varchar2(10

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  这里报错。可能就是因为返回结果太多造成的。

请问怎么解决。。。最后结果能让存储过程字段并列打印

r>------解决方法--------------------------------------------------------
两个查询结果都大于1行,运行就会在  select b.newid  这里报错
你想取一条结果呢,还是所有的都要?
如果是所有的都要,用游标,多条的两个结果如何打印

        

热点排行