我在使用Python为Oracle数据库创建SQL查询时遇到了一个问题。 我想绑定字符串变量,但它不起作用,你能告诉我我做错了什么吗? 这是我的代码:
import cx_Oracle
dokList = []
def LoadDatabase():
conn = None
cursor = None
try:
conn = cx_Oracle.connect("login", "password", "localhost")
cursor = conn.cursor()
query = "SELECT * FROM DOCUMENT WHERE DOC = :param"
for doknumber in dokList:
cursor.execute(query, {'doknr':doknumber})
print(cursor.rowcount)
except cx_Oracle.DatabaseError as err:
print(err)
finally:
if cursor:
cursor.close()
if conn:
conn.close()
def CheckData():
with open('changedNamed.txt') as f:
lines = f.readlines()
for line in lines:
dokList.append(line)
CheckData()
LoadDatabase()
cursor.rowcount
的输出是0,但它应该是大于0的数字。在
您使用字典(
{'doknr' : doknumber}
)作为参数,因此它是一个命名参数—即:param
needs to match the key name。试试这个:为了将来的故障排除,要检查参数是否正确传递,还可以尝试将查询更改为
"select :param from dual"
。在相关问题 更多 >
编程相关推荐