【问题标题】:How can we write pandas dataframe to a Netezza Database directly using pyodbc?我们如何直接使用 pyodbc 将 pandas 数据帧写入 Netezza 数据库?
【发布时间】:2019-06-23 16:51:28
【问题描述】:

我在远程服务器上有 Netezza 数据库,我正在尝试使用 Pyodbc 写入数据库。

从数据库读取时连接工作。但是在尝试写入时,我无法写入 Netezza 数据库。它显示以下错误:

“错误:('HY000','[HY000] 错误:第4列:字段不能包含空值(46)(SQLExecDirectW)')”

在进一步检查第 4 列时,我发现指定问题中没有 Null 值。

另外,我用来写入数据库的代码的 sn-p 如下:

for row in Full_Text_All.itertuples():
     srows = str(row[1:]).strip("()")
     query2 = "insert into MERGED_SOURCES values('+srows+')"

在哪里, Full_Text_All 是数据框的名称 MERGED_SOURCES 是表的名称。

【问题讨论】:

    标签: python-3.x sqlalchemy pyodbc netezza


    【解决方案1】:

    可能是在创建表时将第 4 列定义为 NOT NULL。 如果您可以访问表的 DDL,您应该能够检查这一点。

    如果为第 4 列指定了 NOT NULL 选项,我建议您仔细检查您尝试插入表中的数据:对于他们来说,与第 4 列对应的值不应为空。

    【讨论】:

    • 嗨 Pascaie..感谢您的快速回复.. 我检查了表格,并且在定义任何列时没有使用 NOT NULL 约束。另外,我已经交叉检查了数据框并且不存在 NA 的 Null !但是,数据框中没有任何值。从 Netteza 读取到 Python 时有什么问题吗?类似于隐式类型转换?
    猜你喜欢
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 2020-08-21
    • 2019-01-05
    • 2023-04-04
    相关资源
    最近更新 更多