根据用户输入显示Oracle查询的结果

时间:2016-01-13 15:20:30

标签: python python-2.7 cx-oracle

我正在尝试根据用户输入的内容查询Oracle表中特定ID的记录。

这是我的代码:

import cx_Oracle
con = cx_Oracle.connect('dbuser/dbpassword@oracle_host/service_ID')
cur = con.cursor()
id_number = raw_input('What is the ID Number?')
cur.execute('select id, info from oracle_table_name where id=:id_number')
for result in cur:
    print "test", result
cur.close()
con.close()

弹出以下错误:cx_Oracle.DatabaseError: ORA-01008: not all variables bound

当我删除用户输入和变量替换并运行查询时,一切正常。

2 个答案:

答案 0 :(得分:2)

SQL中的

:id_number是一个参数(变量)。你需要提供它的价值。 execute方法接受参数作为第二个参数。

实施例: query = "select * from some_table where col=:my_param" cursor.execute(query, {'my_param': 5})

查看http://cx-oracle.readthedocs.org/en/latest/cursor.html#Cursor.execute

上的文档

答案 1 :(得分:1)

我为user_value指定了一个名字:

user_value = raw_input('What is the ID Number?')

然后在execute语句中引用它:

cur.execute(query, {'id': (user_value)})

感谢Radoslaw-Roszkowiak的协助!!