Je voudrais écrire une fonction avec deux IN
paramètres où le premier est un varchar
et le second une liste de varchars
. Sur la base de ceux-ci, je veux retourner un tableau avec différents montants de colonnes et noms de type varchar
.
Pour autant que je l'ai vu, je dois toujours créer un objet / enregistrement et un type de table. Cela signifie que mon idée ne fonctionnera pas? L'objectif sous-jacent est de transmettre une sortie de commande système à un appelé en tant que table.
Edit: plus sur la tâche. Je veux émettre une commande OS, consommer la sortie et la renvoyer sous forme de tableau. La sortie de la commande OS va être des données au format CSV. Au moment de l'exécution, je ne connais pas la quantité de lignes à renvoyer mais seulement la quantité de colonnes qui est passée comme deuxième argument. Je pensais à utiliser Java avec une dynamique STRUCT
et à les ARRAY
contenir. Bien que je préfère l'ancienne approche.
Ça devrait ressembler à ça:
create function(clob query, list of varchars cols) returns table
begin
execute system command(query, cols);
examine sysout from command;
return tabular data from syscmd as table;
end