【问题标题】:insert collection data and fk into table oracle apex将集合数据和 fk 插入表 oracle apex
【发布时间】:2021-04-07 10:36:17
【问题描述】:

所以基本问题是: 如何将另一个表中的主键作为外键检索到另一个表中,同时将集合中的存储输入插入到表中?

通过这个过程,我可以从表中获取主键并将其作为外键插入到另一个表中:

DECLARE
  l_id table1.id%TYPE;
BEGIN
  INSERT INTO table1(val) VALUES ('Europe')
    RETURNING id INTO l_id;
  INSERT INTO table2(continent_id, val) VALUES (l_id,'Belgium');
END;
/

但是,通过这个过程,我可以将集合中存储的信息插入到相应的表中。

begin
for i IN (SELECT c001 AS a,c002 AS b, c003 AS c, c004 AS d
          from APEX_COLLECTIONS
  WHERE COLLECTION_NAME='ITEM_DATA'
  ORDER BY 1)
 loop
    insert into table1 (USERID,TEST1,TEST2, TEST3)
    values ( i.a,i.b,i.c,i.d);
  end loop;
apex_collection.delete_collection(p_collection_name=>'ITEM_DATA');
end;

但是,我想开发一个过程,其中外键和集合中存储的信息同时输入到表中。

INSERT INTO TABLE1(FKID,USERID,PROGRAMID,COURSEID) VALUES (ID_SEQ.NEXTVAL, (select c001,c002,c003 from APEX_COLLECTIONS WHERE COLLECTION_NAME='SAVED_DATA'))

很遗憾,我无法在 insert into values 语句中插入 select 语句。

【问题讨论】:

    标签: oracle collections foreign-keys oracle-apex


    【解决方案1】:

    如果我理解正确,这是你想要的吗?

    INSERT INTO TABLE1 (FKID,USERID,PROGRAMID,COURSEID) 
     SELECT ID_SEQ.NEXTVAL, c001, c002, c003 
     FROM APEX_COLLECTIONS 
     WHERE COLLECTION_NAME='SAVED_DATA';
    

    【讨论】:

    • 问题是,有两个表。所以当表单被提交时,集合中存储的数据将被插入到 tbl1 中。然后会生成ID。在提交表单的同时,我希望将来自其他集合的存储数据插入到 tbl2(这可行),但我也想从 tbl1 插入外键(这是从 tbl1 生成的 ID)。
    猜你喜欢
    • 1970-01-01
    • 2021-10-27
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 2022-01-04
    相关资源
    最近更新 更多