variabili cx_Oracle e output
Domanda
Sto cercando di farlo di nuovo un database Oracle 10:
cursor = connection.cursor()
lOutput = cursor.var(cx_Oracle.STRING)
cursor.execute("""
BEGIN
%(out)s := 'N';
END;""",
{'out' : lOutput})
print lOutput.value
ma mi sto
DatabaseError: ORA-01036: illegal variable name/number
E 'possibile definire i blocchi PL / SQL in cx_Oracle questo modo?
Soluzione
Sì, si può fare blocchi anonimi PL / SQL. La variabile si legano per il parametro di output non è nel formato corretto. Dovrebbe essere :out
invece di %(out)s
cursor = connection.cursor()
lOutput = cursor.var(cx_Oracle.STRING)
cursor.execute("""
BEGIN
:out := 'N';
END;""",
{'out' : lOutput})
print lOutput
che produce l'uscita:
<cx_Oracle.STRING with value 'N'>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow