6
我不熟悉PLSQL,但是我必須爲任務執行批量插入操作。oracle批量插入
基本上我必須查詢表一得到一列,然後在不同的表上使用它來插入它。事情是這樣的:
for (ids in a file As cur_id)
{
Select DISTINCT column1 As col1_list from table1 where id=cur_id
for (cols in col1_list as cur_col)
Insert into table2 values ('cur_id','cur_col','214','234','first 3 chars of cur_col')
}
現在,我已經在文件中圍繞4K + IDS和每個ID將有不同幅度的不同COL1的:最高:1.65億,分〜2K
我試圖做到這一點「從一個表讀取並插入到其他使用批量插入」,它是好的,如果這一夜運行等
我拿到這個劇本從一些研究在線:
CREATE OR REPLACE PROCEDURE test_proc
IS
TYPE TObjectTable IS TABLE OF ALL_OBJECTS%ROWTYPE;
ObjectTable$ TObjectTable;
BEGIN
SELECT * BULK COLLECT INTO ObjectTable$
FROM ALL_OBJECTS;
FORALL x in ObjectTable$.First..ObjectTable$.Last
INSERT INTO t1 VALUES ObjectTable$(x) ;
END;
我認爲這可能對我有用,但我不太瞭解語義。我在哪裏提到column1 ...也用於插入值表示爲ObjectTable $(x)而不是值(..,..,..)。
有人可以向我解釋腳本,並幫助我使用我在示例中提到的table1,table2,col1,ids等變量將其修改爲我的用例。
該數據庫爲10g
謝謝!
什麼 「不同COL1的範圍:最高:1.65億,分〜2K」 一致的觀點應該意思?請更好地描述table1和table2的列。 – Codo