oracle插入多行
时间: 2024-10-16 20:20:41 浏览: 33
Oracle数据库中插入多行数据通常可以使用批量插入(Batch Insert)或动态SQL(Dynamic SQL)。以下是两种常见的方式:
1. 批量插入(BULK INSERT):
如果你知道具体的值,并且想要一次性插入大量记录,可以使用`BULK INSERT`命令。例如:
```sql
BULK INSERT table_name
FROM 'file_path'
(FIELDS TERMINATED BY ',' -- 指定字段分隔符
ROWS TERMINATED BY '\n' -- 指定行结束符
[IGNORE NULLS]); -- 忽略NULL值
```
这里`table_name`是你目标表名,`file_path`是包含待插入数据的文本文件路径。
2. 动态SQL(Dynamic SQL):
使用PL/SQL块可以生成动态的插入语句,针对每一条或多条记录执行插入操作。示例如下:
```sql
DECLARE
cursor_data CURSOR FOR SELECT * FROM source_table;
BEGIN
OPEN cursor_data;
LOOP
FETCH cursor_data INTO :variable_list;
EXIT WHEN cursor_data%NOTFOUND;
INSERT INTO target_table (:column_list)
VALUES (:variable_list);
END LOOP;
CLOSE cursor_data;
END;
/
```
这里假设`source_table`是源表,`target_table`是目标表,`:variable_list`和`:column_list`是变量列表,用于映射源表列到目标表的插入值。
阅读全文