Sql 游标数据的问题

Sql 游标数据的问题,sql,oracle,Sql,Oracle,我在编写代码时遇到了一个问题。请帮帮我 我有一个游标c1,它将有一些用户,另一个游标它将包含一些其他用户 c1和c2可能有一些共同的用户 我想写这样的代码 if c1.user=c2.user then insert into b1 table else insert c1 into b1 table insert c2 into b2 table end; 我想,我需要在if条件之前打开游标,但如果我在if条件之前打开2个游标,它会工作吗?如果没有,请建议其他方法。如果这些是您使用光标

我在编写代码时遇到了一个问题。请帮帮我

我有一个游标c1,它将有一些用户,另一个游标它将包含一些其他用户

c1和c2可能有一些共同的用户

我想写这样的代码

if c1.user=c2.user
then 
insert into b1 table
else 
insert c1 into b1 table 
insert c2 into b2 table
end;

我想,我需要在if条件之前打开游标,但如果我在if条件之前打开2个游标,它会工作吗?如果没有,请建议其他方法。

如果这些是您使用光标中的数据执行的唯一操作,则根本不需要光标。将两个游标连接在一起并使用WHEN子句

insert all
    into b1 (<columns> values (<values>)
  when c1.user is null or c2.user is null
    into b2 (<columns> values (<values>)
select <columns>
  from <some_table> c1
  full outer join <some_other_table> c2
    on c1.user = c2.user
 where <some_conditions>

通过使用完全外部联接将两个表联接在一起,可以从两个表中选择所有内容,请参见。您总是插入到表B1中,因此没有条件,但仅当用户不同时才插入到B2中,因此将使用when子句。如果它们不同,则其中一个将为空,因为它们没有满足连接条件。

感谢您的回复。但我需要在else块中进行更多验证,并且只需要使用游标和plsql编程