PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 11/06/2021 08:39:48

JIMLUC
Membre

Script PL/pgSQL interactif

Bonjour,

Je suis nouveau dans le monde de PostgresSQL et je suis chargé de créer un script d'extraction de données interactif (c'est pas gagné !).
Je penses qu'il y a des limites à l'utilisation d'un script PL/pgSQL mais j'aimerais avoir l'avis d'expert comme vous.

Mon script doit se décomposer en quatre parties :
1) choix d'un dossier
2) choix de l'utilisateur dans un dossier
3) extraction de l'utilisateur du dossier
4) mise-à-jour (insert) d'une table


Donc l'idée c'est de lancer le script et d'avoir un invité de commande qui demande de saisir un numéro de dossier.
Ensuite une requête est lancée avec ce numéro de dossier afin d'extraire et afficher les identifiants utilisateurs qui y sont associés au dossier et d'avoir un nouvel invité de commande qui demande de choisir l'identifiant de l'utilisateur à extraire.
Une fois l'extraction effectuée, un nouvel invité de commande demande quelques informations pour venir les insérer dans une table.
Fin du script.

Je n'arrive pas à proposer des invités de commande dans mon script. j'utilise la "méthode" du \prompt  mais ça ne fonction que quand je suis en dehors du bloc DECLARE BEGIN END.
Je voudrais donc savoir s'il existe une possibilité d'avoir accès au prompt (d'une manière ou d'une autre) lorsque je suis dans le bloc BEGIN ?

Par avance, merci pour votre aide/assistance.

Hors ligne

#2 11/06/2021 09:57:05

rjuju
Administrateur

Re : Script PL/pgSQL interactif

Bonjour,


Vous faites plusieurs amalgames.  Tout d'abord plpgsql n'est pas un langage de script (du moins dans le sens où vous l'entendez), mais un langage procédural.  C'est-à-dire qu'il permet de déclarer des procédures ou fonctions, exécutées côté serveur.  Il n'est donc pas possible d'avoir un mode intéractif, et si c'était le cas cela serait côté serveur.


Ensuite, le \prompt, comme toutes les metacommandes \... sont géréees par le client psql uniquement.


Il est peut être possible de faire ce que vous voulez avec un script SQL à exécuter avec psql (vous pouvez consulter https://docs.postgresql.fr/13/app-psql.html ), mais à priori je ne le vous recommande pas.  Vous allez être très vite limité, et le résultat sera peu lisible.  Utilisez un vrai langage de script (idéalement que vous connaissez) et le résultat sera bien meilleur.

Hors ligne

#3 11/06/2021 11:00:09

JIMLUC
Membre

Re : Script PL/pgSQL interactif

Bonjour rjuju,

Tout d'abord merci pour cette réponse, cela corrobore bien ce que je pensais.
Je vais me diriger vers une autre solution comme vous le recommandez.

Encore merci pour votre réponse.

Hors ligne

Pied de page des forums