使用SQLAlchemy将 Dataframe 推送到db2数据库时出错

pexxcrt2  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(194)

我有一个3200 x 8形状的 Dataframe 。我试图使用sqlalchemy将其推送到IBM的DB2数据库。其中一列包含可变长度的文本,可以将其视为包含emoji的英语句子/注解,其他一些列包含其他数据类型。总而言之,认为 Dataframe 是一个大尺寸 Dataframe 。
仅供参考,我已经配置了引擎,并与小块数据,它似乎罚款。
当我这样做的时候,

df.to_sql(name="my_table", con=db2_engine,index=False,if_exists='append')

我收到一个错误,
DatabaseError: ibm_db_dbi::DatabaseError: Exception('SQLRowCount failed: [IBM][CLI Driver] CLI0125E Function sequence error. SQLSTATE=HY010 SQLCODE=-99999')
我尝试了to_sql的块选项,但没有效果。
如何修复此错误?
编辑:
这是pip freeze的输出

cachetools==4.1.0
certifi==2020.4.5.1
chardet==3.0.4
emoji==0.5.4
google-api-core==1.17.0
google-api-python-client==1.8.2
google-auth==1.14.2
google-auth-httplib2==0.0.3
google-auth-oauthlib==0.4.1
googleapis-common-protos==1.51.0
httplib2==0.17.3
idna==2.9
langdetect==1.0.8
oauthlib==3.1.0
protobuf==3.11.3
pyasn1==0.4.8
pyasn1-modules==0.2.8
pytz==2020.1
requests==2.23.0
requests-oauthlib==1.3.0
rsa==4.0
six==1.14.0
uritemplate==3.0.1
urllib3==1.25.9
x7yiwoj4

x7yiwoj41#

今天有同样的问题(原因,我发现这个链接)。
问题似乎是@mao暗示有一个内容被db2拒绝了,在我的示例中,我有一个包含一些整数和一些空字符串的列,混淆了要使用的实际数据类型(int或strings)上的SQL解释器。

解决方案:将列中的所有值更改为字符串数据类型,并且成功。

出错时的源:https://www.sqlerror.de/db2_sql_error_-804_sqlstate_07002.html

相关问题