oracle 批量插入数据sql
时间: 2023-09-06 20:11:41 浏览: 156
在Oracle中,可以使用两种方法实现批量插入数据的效果。方法一是使用union all拼接查询方式,示例如下:
```sql
insert into pager (PAG_ID,PAG_PARENT,PAG_NAME,PAG_ACTIVE)
select 8000,0,'Multi 8000',1 from dual
union all
select 8001,0,'Multi 8001',1 from dual
```
方法二是使用insert all的方式,示例如下:
```sql
MERGE INTO user u
USING (SELECT ? id, ? name, ? age FROM dual) s
ON (u.id = s.id)
WHEN MATCHED THEN
UPDATE SET u.name = s.name, u.age = s.age
WHEN NOT MATCHED THEN
INSERT (id, name, age) VALUES (s.id, s.name, s.age)
```
在这个示例中,我们使用了JDBC的批处理机制来减少与数据库的交互次数。首先,我们通过getConnection()方法获取数据库连接,并将自动提交设置为false。然后,我们使用PreparedStatement来执行MERGE语句,并将需要插入的数据通过setXXX()方法设置到PreparedStatement中。接下来,我们使用addBatch()方法将每条数据添加到批处理中。最后,我们使用executeBatch()方法执行批处理,并通过commit()方法提交事务。如果在执行过程中发生异常,我们可以通过rollback()方法回滚事务。最后,我们通过closeConnection()方法关闭数据库连接。
请注意,以上示例中的代码是Java代码,用于演示如何使用JDBC实现批量插入数据。具体的SQL语句和代码实现可能需要根据实际情况进行调整。
#### 引用[.reference_title]
- *1* [Oracle sql批量插入多条数据](https://blog.csdn.net/jiang1536/article/details/91993243)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [oracle批量插入数据](https://blog.csdn.net/weixin_40778583/article/details/130719158)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文