cx_Oracle et de sortie
Question
Je suis en train de faire à nouveau une base de données Oracle 10:
cursor = connection.cursor()
lOutput = cursor.var(cx_Oracle.STRING)
cursor.execute("""
BEGIN
%(out)s := 'N';
END;""",
{'out' : lOutput})
print lOutput.value
mais je reçois
DatabaseError: ORA-01036: illegal variable name/number
Est-il possible de définir des blocs PL / SQL dans cx_Oracle cette façon?
La solution
Oui, vous pouvez faire des blocs anonymes PL / SQL. Votre variable bind pour le paramètre de sortie ne sont pas dans le bon format. Il devrait être :out
au lieu de %(out)s
cursor = connection.cursor()
lOutput = cursor.var(cx_Oracle.STRING)
cursor.execute("""
BEGIN
:out := 'N';
END;""",
{'out' : lOutput})
print lOutput
Ce qui produit la sortie:
<cx_Oracle.STRING with value 'N'>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow