当前位置: 首页 > 面试题库 >

pyodbc execute命令不接受?参数正确吗?

堵泽宇
2023-03-14
问题内容

这段代码:

cursor.execute('select RLAMBD from ?', OPTable)
print cursor.fetchone().RLAMBD

产生此错误:

ProgrammingError: ('42S02', '[42S02] [Oracle][ODBC][Ora]ORA-00903: invalid table name\n (903) (SQLExecDirectW)')

OPTable是一个字母数字字符串,它是从另一个数据库查询中构建的,该数据库查询包含我要从中选择的表名。

以下代码在同一脚本中也可以正常工作。

sql = 'select RLAMBD from ' + OPTable
cursor.execute(sql)
print cursor.fetchone().RLAMBD

我猜想以这种方式构建sql语句并没有什么大不了的,但是我只是不明白为什么它不接受??参数。我什至在使用?的同一脚本中还有另一个查询。参数化并可以正常工作。但是,使用raw_input函数生成用于工作查询的参数。这两个字符串的格式化方式之间是否存在细微的区别,这使我无法使查询正常工作?谢谢你们。

我正在运行python 2.7和pyodbc 3.0.10。


问题答案:

参数占位符不能用于表示对象名称(例如,表或列名称)或SQL关键字。它们仅用于传递数据 ,例如数字,字符串,日期等。



 类似资料:
  • 我有一个应用程序,它发送序列化的Twitter数据到一个Kafka主题。到目前为止一切都很好。 使用者应用程序应该读取数据并对其进行反序列化。现在,当我调用时,我认为我放入了正确的参数(正如您在抛出的错误中看到的那样),所以我不明白为什么它不能工作。 KafkaUtils类型中的方法createDirectStream(JavaStreamingContext,class-k-,class-v-,

  • 问题内容: 在Java中传递-D参数时,编写命令行然后从代码访问它的正确方法是什么? 例如,我尝试编写类似这样的内容… 然后这样称呼… 但是我收到一个NullPointerException。我究竟做错了什么? 问题答案: 我怀疑问题是您将“ -D”放在了。 之后。试试这个: 从命令行帮助: 换句话说,此刻获得的方式将被视为要传递的参数之一,而不是JVM参数。 (您可能 还 应该删除引号,但是无论

  • 在Linux或Mac上运行带有命令行参数的Node.js脚本的正确语法是什么? 要在没有参数的情况下运行脚本,我只需使用命令node stuff。但是在这种情况下,我想运行一个名为stuff的脚本。js带有参数“blah”、“hee”、“woohoo!” 。

  • 我和这里的用户遇到了同样的问题:log4j类型genericopobjectpool不接受参数,但我一直无法找到这个问题的答案。Log4j2在附加到rollingfile时起作用,但此处列出的方法:https://logging.apache.org/log4j/2.x/manual/appenders.html显示错误“GenericObjectPool不接受参数”

  • 问题内容: 我试图通过Python模块进行控制。 我想为当前的运行时以及永久配置添加一个IP地址到受信任的区域。 以下是dbus界面的文档:http : //manpages.ubuntu.com/manpages/wily/man5/firewalld.dbus.5.html 什么有效:运行时配置 我可以将其添加到运行时配置中: 很简单 什么不起作用:永久配置 事实证明,将其添加到永久配置中比较

  • 一如之前使用 cargo new 新建一个项目。我们称之为 minigrep 以便与可能已经安装在系统上的grep工具相区别: 第一个任务是让 minigrep 能够接受两个命令行参数:文件名和要搜索的字符串。也就是说我们希望能够使用 cargo run、要搜索的字符串和被搜索的文件的路径来运行程序,像这样: $ cargo run searchstring example-filename.tx