oracle中insert多条数据
时间: 2024-09-03 20:02:33 浏览: 52
在Oracle数据库中,如果你想一次性插入多条数据,可以使用`BULK INSERT`命令或`PL/SQL`的`BULK COLLECT`功能,这样可以提高插入效率。以下是两种常见的方法:
1. **使用`BULK INSERT`**:
如果你的数据是在CSV文件或者其他适合的格式中,你可以创建一个外部表并使用`BULK INSERT`来导入数据,示例如下:
```sql
CREATE TABLE my_table (column1 datatype, column2 datatype) EXTERNAL NAME 'filename.csv';
BULK INSERT my_table FROM '/path/to/filename.csv' (FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n');
```
其中,`filename.csv`是你数据文件的路径,`FIELDS TERMINATED BY ','`表示字段由逗号分隔,`LINES TERMINATED BY '\n'`指行以换行符结束。
2. **使用PL/SQL的`BULK COLLECT`**:
如果你想通过程序动态生成数据然后批量插入,可以这样做:
```sql
DECLARE
TYPE table_type IS TABLE OF my_table%ROWTYPE;
data tab_type := table_type();
-- 假设data是一个已填充数据的集合
FOR i IN 1..table_count LOOP
data.extend;
data(data.count) := my_table(column1 => val1, column2 => val2);
END LOOP;
BEGIN
INSERT ALL
INTO my_table VALUES (:1, :2)
SELECT * FROM TABLE(data);
COMMIT;
END;
```
这里假设`my_table`是你想要插入的表名,`val1`和`val2`是实际的值。
阅读全文