此代码:
cursor.execute('select RLAMBD from ?', OPTable)
print cursor.fetchone().RLAMBD
产生此错误:
ProgrammingError: ('42S02', '[42S02] [Oracle][ODBC][Ora]ORA-00903: invalid table namen (903) (SQLExecDirectW)')
可选是我从另一个数据库查询中构建的字母数字字符串,其中包含我要选择的表名。
以下代码在同一脚本中正常工作。
sql = 'select RLAMBD from ' + OPTable
cursor.execute(sql)
print cursor.fetchone().RLAMBD
我想以这种方式构建SQL语句并不是什么大不了的,但是我只是不明白为什么它不接受?参数。我什至在同一脚本中还有另一个查询?参数化,正常工作。但是,使用RAW_INPUT函数生成工作查询的参数。这两个字符串的格式之间是否有一些细微的区别,这阻止了我使查询工作的工作?谢谢你们。
我正在运行Python 2.7和PyodBC 3.0.10。
参数占位符不能用于表示对象名称(例如表或列名称)或SQL关键字。它们仅用于传递数据值,例如,数字,字符串,日期等。