Siguiendo la sugerencia de kfinity sobre el uso de un anónimo envoltorio de bloque y una pregunta bastante similar , el siguiente código funcionará:
outVal = cursor.var(int)
phase = cursor.var(cx_Oracle.STRING)
status = cursor.var(cx_Oracle.STRING)
dev_phase = cursor.var(cx_Oracle.STRING)
dev_status = cursor.var(cx_Oracle.STRING)
message = cursor.var(cx_Oracle.STRING)
sql="""
begin
:outVal := sys.diutil.bool_to_int(
fnd_concurrent.wait_for_request(
:id,
:interval,
:max_wait,
:phase,
:status,
:dev_phase,
:dev_status,
:message
)
);
end;
"""
cursor.execute(
sql,
outVal=outVal,
id='141116467',
interval='1',
max_wait='1',
phase=phase,
status=status,
dev_phase=dev_phase,
dev_status=dev_status,
message=message
)
print(outVal.getvalue())