微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将集合数据和 fk 插入表 oracle apex

如何解决将集合数据和 fk 插入表 oracle apex

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

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

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 语句。

解决方法

如果我没有理解错,这就是你想要的吗?

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。