質問

私はこれをもう一度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