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.aiyiweb.com/oracle-develop/177537.html
------解决方案--------------------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条,如果多条就会很慢