0

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

我正在尝试,但在概念上似乎不可能,唯一的方法是遍历 Pl/sql table 。

任何见解都会非常有帮助。谢谢


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

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;
4

1 回答 1

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;

祝你好运。

于 2015-06-12T10:59:16.630 回答