我正在尝试再次执行此操作: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'>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top