cx_Oracle和输出变量

时间:2010-04-23 11:09:05

标签: python oracle oracle10g 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块?

1 个答案:

答案 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'>