cx_oracle和输出变量
题
我正在尝试再次执行此操作: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块?
解决方案
是的,您可以执行匿名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'>
不隶属于 StackOverflow