Trabajar con procedimientos almacenados en Drupal puede resultar un poco complicado. Aquí te dejo un ejemplo rápido de cómo hacerlo.
StoredProcedureController.php
// No necesitamos usar execute(), llamamos directamente a fetchAssoc() para obtener un array asociativo o fetchObject() para obtener un objeto
// $sp = Database::getConnection()->query("EXECUTE DRU.SP_NAME", $options)->fetchObject();
$sp = Database::getConnection()->query("EXECUTE DRU.SP_NAME", $options)->fetchAssoc();
// Devolvermos el resultado via la render array
return [
'#sp' => $sp,
]
// Usamos hook_theme() para que nuestro módulo sepa que archivo twig vamos a usar y que variable vamos a pasarle.
StoredProcedure.module
function HOOK_theme(){
return [
'variables' => [
'#sp' => $sp,
],
];
}
StoredProcedure.html.twig
// Los datos se pasan del controlador al archivo twig a través de la render array
// Y puesto que es una array asociativa usamos key/value
{% for key,value in sp %}
Key :
{{ key }}
Value :
{{ value }}
{% endfor %}