私は、あるスキーマのテーブルから別のスキーマのテーブル(同一データベース内の)にコピーする必要があるレコードを約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;
私のスクリプトのですか?
は、私はまた、データ型としてVARCHAR2(10)、日付などを与える試みたが、まだそれは同じエラーを得ました。 – Nik