user1表
Id
1
2
5user2表
id num
1
2
3
4
5就是判断user1表ID是否按顺序增长,如果是就插入USER2的id,如果没有这个数就插入num,得到的结果是user2表
我是这样写的Declare
i Number:=0;
Begin
Loop
i:=i+1;
For c_num In (Select Id From user1)
Loop
If c_num.id=i Then
Insert Into User2(Id) Values (c_num.id);
Else
Insert Into user2(num) Values (i);
End If;
End Loop ;
Exit When i=5;
End Loop;
Commit;
End;但是结果是插入了5次
Select * From user2
id num
1
1
1
1
1
2
2
2
2
2
3
3
.....各位看下是那里写错了?怎么循环插入了5次?我只需要一次
Id
1
2
5user2表
id num
1
2
3
4
5就是判断user1表ID是否按顺序增长,如果是就插入USER2的id,如果没有这个数就插入num,得到的结果是user2表
我是这样写的Declare
i Number:=0;
Begin
Loop
i:=i+1;
For c_num In (Select Id From user1)
Loop
If c_num.id=i Then
Insert Into User2(Id) Values (c_num.id);
Else
Insert Into user2(num) Values (i);
End If;
End Loop ;
Exit When i=5;
End Loop;
Commit;
End;但是结果是插入了5次
Select * From user2
id num
1
1
1
1
1
2
2
2
2
2
3
3
.....各位看下是那里写错了?怎么循环插入了5次?我只需要一次
If c_num.id=i Then
Insert Into User2(Id) Values (c_num.id);
Else
Insert Into user2(num) Values (i);
End If;
exit;
结果这样user2表
id num
1
2
3
4
5
只是1写到ID字段,其他都写到num了
Declare
i Number:=0;
Begin
Loop
i:=i+1;
For c_num In (Select Id From user1 WHERE id>=i)
Loop
Dbms_Output.put_line(c_num.id||'=='||i);
If c_num.id=i Then
Insert Into User2(Id) Values (c_num.id);
Else
Insert Into user2(num) Values (i);
End If;
EXIT;
End Loop ;
Exit When i=5;
End Loop;
--Commit;
End;