oracle批量insert多条
时间: 2024-06-28 14:01:05 浏览: 159
oracle+mybatis 使用动态Sql当插入字段不确定的情况下实现批量insert
Oracle数据库中的批量插入(Bulk Insert)是一种高效的方法,用于一次性插入大量数据到表中,相比于一条一条插入,它可以显著提高性能。批量插入通常通过使用PL/SQL的BULK COLLECT和LOOP结构,或者直接使用SQL的INSERT ALL语句来实现。
1. 使用PL/SQL BULK COLLECT:
```sql
DECLARE
TYPE my_table_type IS TABLE OF your_table_name%ROWTYPE;
l_table my_table_type;
BEGIN
-- 假设你有一个游标或查询结果集
FOR row IN cursor LOOP
l_table.extend;
l_table(l_table.count) := row;
END LOOP;
-- 执行批量插入
INSERT INTO your_table_name
BULK COLLECT INTO l_table
FROM TABLE(l_table);
-- 如果有错误,可以选择回滚事务
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END;
```
2. 使用SQL INSERT ALL:
```sql
INSERT ALL
INTO your_table_name (column1, column2, ...)
VALUES (:1, :2, ...)
INTO your_table_name (column1, column2, ...)
VALUES (:3, :4, ...)
... -- 重复上述行,为所有要插入的数据指定值
SELECT * FROM dual;
```
阅读全文