帮我写一段 python的代码: 用于csv文件导入oracle ,需要使用pandas来读取文件,一万行提交一次
时间: 2023-05-23 14:04:09 浏览: 160
当然,这是比较简单的代码,具体实现会因为不同的需求而略有不同,但是可以给你提供一个大体的思路:
```python
import pandas as pd
import cx_Oracle
def import_to_oracle(file_path, table_name, username, password):
chunksize = 10000
conn = cx_Oracle.connect(username, password)
cursor = conn.cursor()
for df in pd.read_csv(file_path, chunksize=chunksize):
tuples = [tuple(x) for x in df.to_numpy()]
placeholders = ','.join(['(:'+str(i+1)+')' for i in range(len(df.columns))])
query = f'INSERT INTO {table_name} VALUES ({placeholders})'
cursor.executemany(query, tuples)
cursor.close()
conn.close()
```
这段代码使用 pandas 的 `read_csv()` 函数读取 csv 文件,按照 `chunksize` 指定的大小分块导入 Oracle 数据库中。在导入时使用了 cx_Oracle 库来连接数据库,并使用了 executemany() 函数一次性执行多条 SQL 语句。注意,这里的占位符并不同于 SQLite 中的占位符,Oracle 中应该使用 `:n` 的形式,其中 n 是从 1 开始的参数序号。
阅读全文