【发布时间】:2012-01-17 19:28:24
【问题描述】:
我正在尝试使用批量插入或其他更有效的方法来解决这段代码,但我没有想法。你会如何处理这个问题。而不是循环这么多次,我想在几个电话中更有效地做到这一点。请让我知道你会怎么做?如果可能的话,用代码!谢谢
LOOP
-- Fetch a row
IF DBMS_SQL.FETCH_ROWS(cursor_handle) > 0 THEN
DBMS_SQL.column_value(cursor_handle, 9, cont_id);
DBMS_SQL.COLUMN_VALUE(cursor_handle, 3, proj_nr);
HTP.BOLD('ContractID: ' || cont_id || ' ProjectNR: ' || proj_nr);
HTP.BR;
ELSE
EXIT;
END IF;
-- delete the old list before saving a new one
IF sek_nr = 1 THEN
EXECUTE IMMEDIATE 'DELETE FROM W_Contracts WHERE user_id = :n' USING CURRENTUSER;
END IF;
EXECUTE IMMEDIATE 'Insert into W_Contracts values(''' || currentUser || ''', '
|| sek_nr || ', sysdate, ' || cont_id || ', '''
|| proj_nr || ''')';
sek_nr := sek_nr + 1;
END LOOP;
【问题讨论】:
标签: plsql cursor oracle11g bulkinsert