8

我正在尝试在 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 块?

4

1 回答 1

9

是的,您可以执行匿名 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'>
于 2010-04-23T14:48:29.120 回答