我正在尝试再次执行Oracle 10数据库:
cursor = connection.cursor()
lOutput = cursor.var(cx_Oracle.STRING)
cursor.execute("""
BEGIN
%(out)s := 'N';
END;""",
{'out' : lOutput})
print lOutput.value
但我正在
DatabaseError: ORA-01036: illegal variable name/number
是否可以通过这种方式在cx_Oracle中定义PL / SQL块?
答案 0 :(得分:7)
是的,您可以执行匿名PL / SQL块。输出参数的绑定变量格式不正确。它应该是:out
而不是%(out)s
cursor = connection.cursor()
lOutput = cursor.var(cx_Oracle.STRING)
cursor.execute("""
BEGIN
:out := 'N';
END;""",
{'out' : lOutput})
print lOutput
产生输出:
<cx_Oracle.STRING with value 'N'>