【问题标题】:Pyodbc: How to select from a table that has string/variable namePyodbc:如何从具有字符串/变量名称的表中进行选择
【发布时间】:2017-10-13 17:25:33
【问题描述】:

我在尝试从名称取决于我给它的变量的表中创建(或选择)时遇到了一些问题。

例如,下面是我尝试过但不起作用的代码示例,其中 'Hey' = 我试图通过变量 'j' 选择的表的名称(存在于数据库中)。

j = 'Hey'
rows = conn.execute("SELECT * from ?", (j,)).fetchall()
print(rows)

有人对此有解决方案吗?提前致谢。

【问题讨论】:

    标签: python-3.x pyodbc


    【解决方案1】:

    ? 用于绑定参数,不幸的是,表名不能以这种方式工作。但是,这会,但要小心 SQL 注入:

    j = 'Hey'
    rows = conn.execute("SELECT * from {table_name}".format(table_name=j)).fetchall()
    print(rows)
    

    不幸的是,您也不能将其绑定到 T-SQL 变量名,因为您只是将问题传递给下游的 T-SQL EXEC 命令,如下所述:Table name as variable 另请注意这一点是因为SQL Server和T-SQL的设计,不是pyodbc

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2019-09-06
      • 2022-08-17
      • 2019-05-28
      • 2016-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-05
      • 2015-07-16
      相关资源
      最近更新 更多