我有大約500萬條需要從一個模式的表複製到另一個模式的表(在同一個數據庫中)的記錄。我準備了一個腳本,但它給了我下面的錯誤。在Oracle PL/SQL中批量插入
ORA-06502: PL/SQL: numeric or value error: Bulk bind: Error in define
以下是我的腳本
DECLARE
TYPE tA IS TABLE OF varchar2(10) INDEX BY PLS_INTEGER;
TYPE tB IS TABLE OF SchemaA.TableA.band%TYPE INDEX BY PLS_INTEGER;
TYPE tD IS TABLE OF SchemaA.TableA.start_date%TYPE INDEX BY PLS_INTEGER;
TYPE tE IS TABLE OF SchemaA.TableA.end_date%TYPE INDEX BY PLS_INTEGER;
rA tA;
rB tB;
rD tD;
rE tE;
f number :=0;
BEGIN
SELECT col1||col2||col3 as main_col, band, effective_start_date as start_date, effective_end_date as end_date
BULK COLLECT INTO rA, rB, rD, rE
FROM schemab.tableb;
FORALL i IN rA.FIRST..rE.LAST
insert into SchemaA.TableA(main_col, BAND, user_type, START_DATE, END_DATE, roll_no)
values(rA(i), rB(i), 'C', rD(i), rE(i), 71);
f:=f+1;
if (f=10000) then
commit;
end if;
end;
能否請你幫我找到那裏的錯誤所在?
而不是聲明SchemaA.TableA.main_col%TYPE,我也試着給varchar2(10),日期等作爲數據類型,但它仍然給出了相同的錯誤。 – Nik