使用oracle forall插入父表和子表
我需要在oracle 11g中将数据插入到父表和子表中 将数据插入父表,并将所有成功记录的数据插入子表 我想使用批量处理来实现这一点 我能够将记录插入父表,并使用return子句将PK放入集合中 但是我被如何使用返回的集合插入子表所震惊 请你帮我举一个如何实现它的例子 p、 S:我没有创建类型访问权限使用oracle forall插入父表和子表,oracle,parent-child,bulkinsert,Oracle,Parent Child,Bulkinsert,我需要在oracle 11g中将数据插入到父表和子表中 将数据插入父表,并将所有成功记录的数据插入子表 我想使用批量处理来实现这一点 我能够将记录插入父表,并使用return子句将PK放入集合中 但是我被如何使用返回的集合插入子表所震惊 请你帮我举一个如何实现它的例子 p、 S:我没有创建类型访问权限 谢谢您能发布您迄今为止尝试过的内容吗?是的,您需要发布您正在尝试的代码或方法。还发布表的数据结构。打开“从父表中选择ID、名称、城市”的ID\u类型;循环开始获取ID\u类型批量收集到游标\u获取
谢谢您能发布您迄今为止尝试过的内容吗?是的,您需要发布您正在尝试的代码或方法。还发布表的数据结构。
打开“从父表中选择ID、名称、城市”的ID\u类型;循环开始获取ID\u类型批量收集到游标\u获取限制1000;当CURSOR_FETCH.COUNT=0时退出;DBMS_OUTPUT.PUT_LINE('eqpmt id count:'| | CURSOR_FETCH.count);对于1中的所有I..CURSOR_FETCH.COUNT保存异常,将其插入主_父(ID、名称、城市)值(CURSOR_FETCH(I).ID、CURSOR_FETCH(I).NAME、CURSOR_FETCH(I).CITY)返回CURSOR_FETCH(I).ID批量收集到L_ID中;结束;犯罪端环代码>我已经为父表插入添加了代码,现在我需要使用l_ID集合为子表插入。请通过编辑问题而不是作为注释添加代码。谢谢。我想使用批量处理来实现这一点
DECLARE
CURSOR cOld IS
SELECT *
FROM my_list;
new_id NUMBER;
BEGIN
FOR rOld IN cOld LOOP
new_id := sup_seq.NEXTVAL; -- Get the ID to use for the new row
INSERT INTO my_list
(sup_id,sup_name,sup_code)
VALUES (new_id,rOld.sup_name,rOld.sup_code);
INSERT INTO my_list_details
(buy_id,sup_id,sup_detail,max_amount,min_amount)
SELECT buy_seq.NEXTVAL,new_id,sup_detail,max_amount,min_amount
FROM my_list_details
WHERE sup_id = rOld.sup_id;
END LOOP;
END;