Python中Oracle select查询的绑定变量

Python中Oracle select查询的绑定变量,python,oracle,pyqt5,bind-variables,Python,Oracle,Pyqt5,Bind Variables,我正在尝试为Oracle数据库执行select语句。在select语句中,我需要从复选框中检索表名并在查询中给出它,而不是直接给出表名。尝试了一些代码,但最终出现错误…请在下面找到我的代码 if self.checkbox.isChecked(): Text = self.checkbox.text self.cur.execute(“select * from :tblmn”,(text)) print(cur) 连接和游标已定义,但未在上面的代码中指定。请帮我解

我正在尝试为Oracle数据库执行select语句。在select语句中,我需要从复选框中检索表名并在查询中给出它,而不是直接给出表名。尝试了一些代码,但最终出现错误…请在下面找到我的代码

if self.checkbox.isChecked():
    Text = self.checkbox.text
     self.cur.execute(“select * from :tblmn”,(text))
     print(cur)

连接和游标已定义,但未在上面的代码中指定。请帮我解决这个问题。谢谢

这基本上是一个问题解决方案的组合。您不能使用绑定表名,但可以通过字符串格式进行绑定,这会增加SQL注入的风险。为了避免这种情况,您可以使用oracle软件包,该软件包的函数可能会在它不是有效的数据库对象(
dbms\u assert.SQL\u object\u name
)时引发异常,您可能必须处理它。 假设您正在使用cx_Oracle

cur = conn.cursor()
my_tabname = cur.callfunc('sys.dbms_assert.sql_object_name'
                             , cx_Oracle.STRING, ['employees'])
cur.execute("SELECT * from {tablename}".format(tablename=my_tabname))
for line in cur:
    print(line)
可能重复的