gpt4 book ai didi

python - 在 python 中读取 SQL 表

转载 作者:太空宇宙 更新时间:2023-11-03 13:27:38 25 4
gpt4 key购买 nike

我正在尝试在 python 中读取 SQL 表。下面的脚本我正在使用并且能够正确读取数据。

Data = pd.read_sql_query("SELECT * from Data where [ID] = " + id ,engine)

但是当列 ID 的类型更改为 nvarchar 时,出现以下错误。

DatabaseError: Execution failed on sql 'SELECT * from Data where [ID] = 123': ('42000', '[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Error converting data type nvarchar to numeric. (8114) (SQLExecDirectW)')

有什么方法可以使用 nvarchar 列过滤表格?

最佳答案

重要提示:

我真的需要强调,虽然这个解决方案确实解决了原始问题的问题,SQL 查询文本中使用的字符串连接通常表示 SQL injection vulnerability ...使用占位符和参数 - 使用它。如果您决定无论如何都要使用字符串连接 - 不要连接来自外部来源/用户/客户/除“您”之外的任何人的数据。 您已收到警告。


原始答案

如果 ID 是一个 nvarchar,您也需要将 id 转换为它。

Data = pd.read_sql_query("SELECT * from Data where [ID] = CAST(" + id + " AS NVARCHAR(10))", engine)

注意:我为您的 NVARCHAR(大小)传递了 10,但您最终必须确定它应该是什么。

关于python - 在 python 中读取 SQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52445132/

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