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 这里报错。可能就是因为返回结果太多造成的。麻烦各位大侠给解决下最后结果能让两个字段并列打印出。 谢谢
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 这里报错。可能就是因为返回结果太多造成的。麻烦各位大侠给解决下最后结果能让两个字段并列打印出。 谢谢
解决方案 »
- dbconsole 启动不了
- 存储过程的返回值问题
- 请教:Oracle存储过程中需要写commit吗?
- 求一个sql 语句
- 哪位大侠能帮我写出具怎么做吗?把HR表空间里的所有表全部导入到其它表空间(CHENXP)..谢了
- 在存储过程中如何给date型变量赋值
- ORACLE有登录和操作记录的详细日志吗?
- 美女提问,请回答!50分送第一个解决问题的人。把sqlserver的表导出到oracle中,发现这些表不可用,为什么?
- 请问如何把“用PowerDesigner建好的数据模型结构”导入到oracle92中?请高手指教!
- 一个查出一用户下表的机构的sql语句,包括主键、外键、字段属性等,但是特慢,请帮忙优化一下,方便请注明原因
- 求一条oracle 检索数据库表中新插入的数据【优化查询】
- 数据同步转移问题
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
你想取一条结果呢,还是所有的都要?
如果是所有的都要,用游标,多条的两个结果如何打印
比如fetch后,两个查询一个返回2条记录,一个返回3条记录,你要这么处理
大致可以在这个游标循环里面再加一个游标循环。剩下的就是2个查询的对应问题