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ブロックを定義することは可能ですか?
解決
はい、匿名の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'>
所属していません StackOverflow