oracle存储过程 循环判断插入 现在一个表中查出:1\x05type1\x051\x05111\x0522\x05type1\x051\x05112\x0523\x05type1\x052\x05111\x0524\x05type1\x052\x05112\x0525\x05type1\x053\x05111\x0526\x05type1\x053\x05112\x0527\x05type2\x051\x05111\

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/31 12:12:51

oracle存储过程 循环判断插入
现在
一个表中查出:
1\x05type1\x051\x05111\x052
2\x05type1\x051\x05112\x052
3\x05type1\x052\x05111\x052
4\x05type1\x052\x05112\x052
5\x05type1\x053\x05111\x052
6\x05type1\x053\x05112\x052
7\x05type2\x051\x05111\x052
8\x05type2\x051\x05112\x052
9\x05type2\x052\x05111\x052
10\x05type2\x052\x05112\x052
11\x05type2\x053\x05111\x052
12\x05type2\x053\x05112\x052
根据类型插入到另一个表,
就是先将type1 的所有插入到那个表,
然后在吧表清空,再去插type2的 数据
是不是需要写两个游标?
把查出来的内容 放到一起,吧type 放到一起
然后再根据type 依次插入?
嵌套游标怎么写?
有没有什么好的方法啊

“就是先将type1 的所有插入到那个表,
然后在吧表清空,再去插type2的 数据”
这个描述没看懂.
是不是要从a表取出数据,type等于1的处理后插入b表,type等于2的处理后插入c表?
在这样的情况下,如果处理逻辑简单,只需要一句insert all就够了.
用不着什么游标.效率也好.
insert all的写法是这样的:
insert all
WHEN type = 1 and 其他条件等等 THEN
INTO TABLE_B VALUES (c1,c2,c3)
WHEN type = 2 and 其他条件等等 THEN
INTO TABLE_C VALUES (c1+1,C2*2,c4,c5)
ELSE
INTO TABLE_B VALUES(c3+3,c4-5,c5*7)
SELECT type,c1,c2,c3,c4,c5 FROM table_A
;
INTO 的表可以是同一个表,也可以不同,表结构也可以不同.