las variables cx_Oracle y salida
Pregunta
Estoy tratando de hacer esto de nuevo una base de datos Oracle 10:
cursor = connection.cursor()
lOutput = cursor.var(cx_Oracle.STRING)
cursor.execute("""
BEGIN
%(out)s := 'N';
END;""",
{'out' : lOutput})
print lOutput.value
Pero estoy
DatabaseError: ORA-01036: illegal variable name/number
¿Es posible definir PL / SQL bloques en cx_Oracle esta manera?
Solución
Sí, se puede hacer anónimos PL / SQL bloques. Su variable de vinculación para el parámetro de salida no está en el formato correcto. Debe ser :out
en lugar de %(out)s
cursor = connection.cursor()
lOutput = cursor.var(cx_Oracle.STRING)
cursor.execute("""
BEGIN
:out := 'N';
END;""",
{'out' : lOutput})
print lOutput
¿Qué produce la salida:
<cx_Oracle.STRING with value 'N'>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow