我将光标中的值插入到两个表中。表A和B. 但是B中将有一个额外的列
QUERY
CREATE OR REPLACE PROCEDURE fast_proc (p_array_size IN PLS_INTEGER DEFAULT 100)
IS
TYPE ARRAY IS TABLE OF all_objects%ROWTYPE;
l_data ARRAY;
CURSOR c IS
SELECT col1 ,col2,col3
FROM dual;
BEGIN
OPEN c;
LOOP
FETCH c BULK COLLECT INTO tableB LIMIT p_array_size ;
FORALL i IN 1..tableB .COUNT
INSERT INTO t2 VALUES tableB (i);
EXIT WHEN c%NOTFOUND;
END LOOP;
CLOSE c;
END fast_proc;
但由于状态列未填满,这给了我错误。如何插入光标中的所有值,然后将状态添加为已编码的' A'。
我无法在查询中添加它,因为将在表A中使用相同的游标。
答案 0 :(得分:0)
如果您尝试在光标中进行部分提取并将其插入表中,然后再向表中添加状态,为什么不同时执行此操作?
CURSOR c IS
SELECT col1 ,col2,col3,'A'
FROM dual;
' A'是状态列的来源。
如果您只想在光标提取后插入值,那么将insert语句更改为如下所示:
INSERT INTO t2(col1 ,col2,col3) VALUES tableB(i);
指定应进行插入的列,即保留状态列。