如何使用PyODBC在Oracle数据库上编写参数化查询?

时间:2017-02-06 19:20:53

标签: python oracle odbc

我正在尝试使用pyodbc来处理Oracle数据库。我的数据库包装器类生成参数化查询,例如:

pyodbcCursor.execute("INSERT INTO MY_TABLE (MY_COLUMN) VALUES (?)", myValue)

当我连接到PostgreSQL数据库时,该函数调用有效,但是当我连接到Oracle数据库时则不行。 ODBC驱动程序OraClient10g_home1不足以返回错误值。我曾经看过的网页似乎表明这样做的理想方法是使用cx_Oracle包,但我没有。有没有办法让参数化查询在没有cx_Oracle的情况下工作?或者我应该要求这台计算机的管理员安装cx_Oracle包吗?

这是我的测试代码:

testCursor = self.MipsDatabase.Cursor()
try:
    testCursor.execute('insert into "RAD_CON_ANNEAL_STATUS" ("SEQUENCE") VALUES (1)')
    self.MipsDatabase.Commit()
except Exception as ex:
    pass

testCursor.execute('select * from "RAD_CON_ANNEAL_STATUS"')
row = testCursor.fetchone()

try:
    testCursor.execute('insert into "RAD_CON_ANNEAL_STATUS" ("SEQUENCE") values (?)', 2)
except Exception as ex:
    pass

try:
    testCursor.execute('insert into "RAD_CON_ANNEAL_STATUS" ("SEQUENCE") values (:0)', (2,))
except Exception as ex:
    pass

try:
    testCursor.execute('insert into "RAD_CON_ANNEAL_STATUS" ("SEQUENCE") values (:1)', (2,))
except Exception as ex:
    pass

非常感谢。

0 个答案:

没有答案