8

Oracle10データベースでこれをもう一度実行しようとしています。

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 に答える