如何使用 pyodbc 准备语句插入空字符串而不是 NULL 值?

Posted

技术标签:

【中文标题】如何使用 pyodbc 准备语句插入空字符串而不是 NULL 值?【英文标题】:How to insert empty string instead of NULL values using pyodbc prepared statement? 【发布时间】:2022-01-19 09:01:51 【问题描述】:

这是我的示例语句:

conn.cursor.execute("insert into Employee(name, manager) values(?,?)", ('rahul',''))

我使用 Sybase 作为数据库。如果我使用数据库客户端执行语句:

insert into Employee(name, manager) values('rahul','')

然后,为manager 列插入空值,这是所需的。

但是当我执行准备好的语句时,NULL 值被插入到数据库中。

这是怎么发生的?以及如何解决这个问题?谢谢!

【问题讨论】:

相关:***.com/q/52284561/2144390 【参考方案1】:

当您执行 INSERT 语句时,数据库服务器将 NULL 值插入您未提供值的任何列,以及没有默认值的所有列。 您可以为该列设置默认值,这可能会解决此问题。

编辑:而不是传递''尝试传递'',它可能会解决问题。我认为数据库会检查字符串的长度,当长度为 0 时,它会插入一个 Null 值。

【讨论】:

以上是关于如何使用 pyodbc 准备语句插入空字符串而不是 NULL 值?的主要内容,如果未能解决你的问题,请参考以下文章

如何使 Microsoft BCP 导出空字符串而不是 NUL 字符?

当没有匹配的记录时,如何将与另一个表连接的 group_concat 列更改为空字符串而不是 null?

获取 pandas.read_csv 以将空值读取为空字符串而不是 nan

Paypal IPN 返回空字符串而不是“VERIFIED”或“INVALID”

Json转换空字符串而不是null

复选框输入返回空字符串而不是 true/false,使用 React hook dom 和 material-ui FormControlLabel