oracle里面的insert into INSERT INTO table_name VALUES (value1, value2, value3, ...); 怎么一次性插入多条记录
时间: 2024-09-20 20:02:57 浏览: 31
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解(SQL数据库和Oracle数据库的区别)
5星 · 资源好评率100%
在Oracle数据库中,如果你想一次性插入多条记录,可以使用`BULK COLLECT`结合`INTO TABLE`语句。这通常在处理大量数据时效率更高,因为它减少了与服务器之间的交互次数。以下是一个示例:
```sql
DECLARE
TYPE my_table_type IS TABLE OF record_type INDEX BY PLS_INTEGER;
my_table my_table_type;
BEGIN
FOR i IN 1..5 LOOP
my_table(i) := record_type(column1 => 'value1', column2 => 'value2', column3 => 'value3');
END LOOP;
INSERT ALL
INTO table_name (column1, column2, column3)
SELECT column1, column2, column3
FROM TABLE(my_table);
COMMIT; -- 提交事务,确保所有记录都被保存
EXCEPTION
WHEN OTHERS THEN
ROLLBACK; -- 如果发生错误,回滚事务
DBMS_OUTPUT.PUT_LINE('Error occurred: ' || SQLERRM);
END;
```
在这个例子中,首先声明了一个表类型`my_table_type`来存储待插入的数据,然后在一个循环中填充这个类型的实例。接着使用`INTO TABLE`从`my_table`选择并插入数据到`table_name`。
阅读全文