当前位置: 代码迷 >> Oracle开发 >> oracle 存储过程插入数据的有关问题
  详细解决方案

oracle 存储过程插入数据的有关问题

热度:72   发布时间:2016-04-24 07:46:43.0
oracle 存储过程插入数据的问题?

表stu   有3个字段为id,name,age,class

现在编写一个添加记录的过程,
要求:

name       age       class
fk0         22         0101
fk1         23         0102
fk2         24         0103

形成迪卡尔集插入,即插入后的结果应该是一共有3x3x3=27条记录,
并且要求name,age,class   所有的输入数据以参数的形式一起传入(什么形式传都可以),  
过程如何编写,请高手指点?


------解决方案--------------------
代码迷推荐解决方案:oracle存储过程,http://www.daimami.com/search?q=177537
------解决方案--------------------
CREATE OR REPLACE PROCEDURE TEST IS
--首先建个临时表,把值导入
CURSOR C1 IS
SELECT ST1.NAME FROM STU_TEMP ST1;
CURSOR C2 IS
SELECT ST2.AGE FROM STU_TEMP ST2;
CURSOR C3 IS
SELECT ST3.CLASS FROM STU_TEMP ST3;
I NUMBER := 1;
BEGIN
FOR REC1 IN C1 LOOP
FOR REC2 IN C2 LOOP
FOR REC3 IN C3 LOOP
INSERT INTO STU
(ID, NAME, AGE, CLASS)
VALUES
(I, REC1.NAME, REC2.AGE, REC3.CLASS);
I := I + +;
END LOOP;
END LOOP;
END LOOP;
END TEST;
---试下看行不
------解决方案--------------------
可以考虑把程序写在前台处理上面,这样用3个数组3个循环变量就能轻松实现。
当然在oracle里也可以.
楼上的方法也可以,不过用游标的话,对性能影响大,你这还好只有3条,如果多条就会很慢
  相关解决方案