gpt4 book ai didi

python - 使用 sqlalchemy 将数据加载到 Oracle 数据库时不允许使用“Multi”方法

转载 作者:行者123 更新时间:2023-12-04 04:10:56 25 4
gpt4 key购买 nike

我正在使用 sqlalchemy 和 pandas 将数据帧加载到 Oracle 数据库。由于“多”方法允许批量上传,因此我选择了该方法。我的 Pandas 版本是 1.0.1。但是我得到如下错误:

The 'oracle' dialect with current database version settings does not support in-place multirow inserts.


from sqlalchemy import create_engine
oracle_connection_string = (
'oracle+cx_oracle://{username}:{password}@' +
cx_Oracle.makedsn('{hostname}', '{port}', service_name='{service_name}'))

engine = create_engine(oracle_connection_string.format(
username='abc',
password='123',
hostname='bcd',
port='1234',
service_name='xyz.com',fast_executemany=True))
cleandata.to_sql('table', con = engine,schema = 'ht', if_exists='replace',index = False, method = 'multi')

到目前为止,我没有看到任何帖子有同样的问题。你知道如何解决这个问题吗?
P.s:当我消除方法 multi 时,代码有效。但是对于 10 条记录,运行需要 2 分钟。那太贵了。我的表将有 4000 条记录。这就是我在 Python 上寻找快速加载方法的原因。谢谢!

最佳答案

正如克里斯提到的,我使用了来自 here 的批量加载.

> cursor.executemany("insert into Table values (:1, :2)", dataToInsert')

那工作得很好。从 120 秒,我减少了 95%,在上传记录数量相同的情况下减少到 5 秒。

关于python - 使用 sqlalchemy 将数据加载到 Oracle 数据库时不允许使用“Multi”方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61749920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com