使用python脚本把CSV文件数据导入ORACLE,并且使得读取CSV效率最高,10000行提交一次。并每次打印提交数量
时间: 2023-05-23 15:03:40 浏览: 484
您好,这是一个比较典型的数据迁移问题,可以使用 Python 中的 pandas 和 cx_Oracle 模块来实现。
以下是实现步骤:
1. 使用 pandas 中的 read_csv() 方法将 CSV 文件读取为 DataFrame。
2. 遍历 DataFrame,将每行数据逐一插入 ORACLE 数据库中。
3. 可以设置一个计数器,在插入完成每 10000 行数据时,执行一次提交操作。同时,在所有数据插入完成后,需要执行一次提交操作,以确保数据被正确插入。
4. 可以使用时间戳来记录每次提交的数量和时间,以便后续查看日志。
下面是示例代码:
```python
import pandas as pd
import cx_Oracle
def import_data_to_oracle(file_path, table_name):
# 连接 ORACLE 数据库
conn = cx_Oracle.connect('user_name/password@localhost:1521/database_name')
cursor = conn.cursor()
# 读取 CSV 文件
csv_data = pd.read_csv(file_path)
# 迭代插入数据
count = 0
for index, row in csv_data.iterrows():
# 构造插入语句
insert_sql = "INSERT INTO " + table_name + " (column1, column2, ...) " \
+ "VALUES (value1, value2, ...)"
# 执行插入操作
cursor.execute(insert_sql)
# 计数器 +1
count += 1
# 每 10000 行数据,执行一次提交操作
if count % 10000 == 0:
conn.commit()
print(f"{count}rows committed.")
# 最后执行一次提交操作,确保所有数据被正确插入
conn.commit()
# 关闭游标和连接
cursor.close()
conn.close()
if __name__ == "__main__":
# 调用导入函数
import_data_to_oracle("data.csv", "table_name")
```
请注意,代码中的列名、值等需要根据实际情况进行修改。
阅读全文