我有大约100000到1000000行要插入Oracle18c数据库。我对甲骨文和这种数量级的数据还是比较陌生的。我想一定有一些最佳的方法来实现这一点,但目前我只设法实现了逐行插入:
def insertLines(connection, tableName, column_names, rows):
cursor = connection.cursor()
if tableExists(connection, tableName):
for row in rows:
sql = 'INSERT INTO {} ({}) VALUES ({})'.format(tableName, column_names, row)
cursor.execute(sql)
cursor.close()
在Oracle中,是否有一些明确的方法可以使用cx_Oracle(python-Oracle库)对行进行大容量处理以达到更高的效率?在
编辑:我从CSV文件中读取数据。在
就性能和简单性而言,最理想的方法是在CSV文件上创建一个外部表,然后使用SQL进行插入。在
如果数据已经在Python中,那么使用^{} 。在有这么多行的情况下,您可能仍然会执行多个调用来插入成批的记录。见https://blogs.oracle.com/opal/efficient-and-scalable-batch-statement-execution-in-python-cx_oracle
正如其他人指出的那样
我不知道数据的格式,但是SQL Data Loader是一个专门为向Oracle添加大量数据而创建的命令行实用程序。在
相关问题 更多 >
编程相关推荐