将pl / sql表类型的数据插入另一个pl / sql表类型

时间:2015-06-12 08:15:54

标签: oracle plsql bulk-collect

我只是想知道是否可以使用bulkcollect将数据从一个pl / sql表插入到另一个pl / sql表中?

我正在尝试但看起来它在概念上是不可能的,唯一的方法是遍历Pl / sql表。

任何见解都会非常有用。 感谢

下面是我正在尝试的简化版本。我想我在这里犯了一些概念上的错误。因此它不起作用:

DECLARE 
TYPE ROWTBL IS TABLE OF BW_COLUMN.NAME%TYPE ;
PL_TBL_ROW ROWTBL;

TYPE COLNAME_TBL IS TABLE OF BW_COLUMN.NAME%TYPE ;
PL_TBL_COLNAME COLNAME_TBL;

BEGIN

   SELECT NAME 
   BULK COLLECT INTO PL_TBL_ROW 
   FROM TBL_COL WHERE TBL_ID = 2000081;


   SELECT NAME 
   BULK COLLECT INTO PL_TBL_COLNAME 
   FROM PL_TBL_ROW;

END;

1 个答案:

答案 0 :(得分:1)

BULK COLLECT是一种有效地将数据读入PL / SQL数据结构的机制,因此可以通过PL / SQL代码处理它们。你当然可以使用这种方法将数据从一个表复制到另一个表但我怀疑它可能比使用INSERT语句的简单方法花费更多的时间,例如

BEGIN
  INSERT INTO SOME_TABLE (COL_1, COL_2, COL_N)
    SELECT COL_1, COL_2, COL_N
      FROM SOME_OTHER_TABLE
      WHERE SOME_FIELD = SOME_OTHER_VALUE;
END;

祝你好运。