Oracle DB,PL / SQL中的嵌套表用法

时间:2013-10-17 04:50:23

标签: oracle plsql oracle11g foreign-keys

我有一个嵌套表nt和一个数据库表fruits。我想在表nt中包含fruits的所有元素。是否有某种批量插入方法用于集合,可能比循环遍历每个元素更便宜?

另外,假设我有一个包含food列的父表fruit_id。让孩子表fruits理想吗?通过创建更有效的类型food,将集合直接存储到表food_type中吗?


  • 当前设计:

父表:食物; 列: idnamefruit_id

儿童表:水果; 列: idname其中 嵌套表nt通过循环

插入子表fruits
  • 拟议设计:

表:食物; 列: idnamefruit_table 其中

CREATE type food_type IS TABLE OF varchar(50);
nt food_type;

nt与行一起插入,作为列fruit_table

的一部分

1 个答案:

答案 0 :(得分:0)

  1. 您可以使用以下insert语句执行此操作:

    INSERT INTO fruits (id, name) 
    select fruit_sequence_name.nextval, COLUMN_VALUE from TABLE(nt);
    
  2. 这取决于您要运行的查询。如果您需要进行大量的分析查询,将它们分开是有意义的,否则将嵌套表存储在食物中是没有问题的。