将数组/嵌套 table 插入 table

Insert array / nested table into table

如果已经给出答案,我真的很抱歉,但我只能找到 php 的答案。

我的问题是我得到了嵌套的 table 数组“test_nested_table”,它具有值 ('a'、'b'、'c')。我还在数据库中得到了 table“test_table”,其中包含三列 col1、col2、col3。

我想做的就是

insert into test_table values (test_nested_table);

我明白我能做到:

insert into test_table values (test_nested_table(1), test_nested_table(2), test_nested_table(3));

但是,我的实际生活table可能非常大,如果我真的需要键入所有100个元素来插入,我会感到非常惊讶。

我想出了以下解决方案:

declare
    type test_array is varray(3) of varchar2(10);
    ta test_array := test_array ('a','b','c');
    sql_txt varchar2(1000) := 'insert into test_table_1 values (''';
begin
    for n in 1 .. ta.count loop
    sql_txt := sql_txt || ta(n)||''',''';
    end loop;
    sql_txt := rtrim(sql_txt,',''')||''')';
    execute immediate sql_txt;
end;
/

因此,如果您有数组或任何其他集合类型,则可以使用动态方法插入大量值,而无需将它们全部写入插入语句;但是,我相信应该还有更常用的方法来做到这一点。