我正在尝试使用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
非常感谢。