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 Re : Général » Incrémentation d'une colonne via un curseur » 23/09/2022 15:19:44

Bonjour Daniel,

Merci, j'ai corrigé, ça tourne !
Bonne journée, Catherine.

#2 Re : Général » Incrémentation d'une colonne via un curseur » 21/09/2022 11:49:21

Avec toutes mes excuses, Julien, votre solution fonctionne très bien, c'est moi qui ai commis une erreur !
Si vous pouviez déboguer ma boucle, ce serait parfait !!!
Merci beaucoup, Catherine.

#3 Re : Général » Incrémentation d'une colonne via un curseur » 21/09/2022 11:34:29

Cette syntaxe retourne le message d'erreur suivant, même avec la création d'une PK sur la colonne id_vaccin ? "HINT:  Il existe une colonne nommée « id_vaccin » pour la table « test » mais elle ne peut pas être référencée dans cette partie de la requête."

Merci pour votre aide, savez-vous ce qui est faux dans la boucle du traitement initial, SVP?

#4 Re : Général » Incrémentation d'une colonne via un curseur » 21/09/2022 09:42:02

Merci Julien,

Mais cette fonction convient pour les select, pas pour les update, elle génère l'erreur : "ERREUR:  les fonctions de fenêtrage ne sont pas autorisés dans UPDATE."

Pour ma connaissance personnelle, j'aurais besoin de comprendre ce qui bloque dans ma boucle de lecture / mise à jour via curseur et fetch, s'il vous plait ...

Bonne journée, Catherine.

#5 Re : Général » Incrémentation d'une colonne via un curseur » 21/09/2022 05:14:55

Bonjour Daniel,

Merci pour votre réponse, mais je ne comprends pas comment faire un update incrémental d'une colonne sans boucle, avec Oracle, c'est possible via le rownum, mais pas avec PostGreSQL, si?

Le commit ferme la transaction, vraiment ?

Merci pour votre retour, Catherine.

#6 Général » Incrémentation d'une colonne via un curseur » 20/09/2022 14:13:22

Catherine
Réponses : 9

Bonjour,

Je vous remercie de m'indiquer quelle est mon erreur, je souhaite mettre à jour une colonne de table via un curseur qui la parcourt intégralement... Merci encore, Catherine.


DO $$

DECLARE
  cLecture CURSOR FOR SELECT * FROM EMA.TEST;
  rt EMA.TEST%ROWTYPE;
  NB Integer := 1;
   
BEGIN MAJ
OPEN cLecture;
LOOP
    FETCH ALL FROM cLecture;
    EXIT WHEN NOT FOUND; 
   
        UPDATE EMA.TEST SET NumLigne = NB WHERE CURRENT OF cLecture;
    COMMIT; 
    NB := NB + 1 ;

END LOOP ;

CLOSE cLecture;

END MAJ;
$$ LANGUAGE plpgsql;

#7 Re : Général » Passage d'une variable OS/script psql » 25/06/2021 14:21:23

Merci, Daniel,

Et dans le script il est utilisé avec ":" ?

Par exemple, Select * From [MaTable] Where [MaColonne] = :[MonNomDeVariable];

Catherine.

#8 Re : Général » Passage d'une variable OS/script psql » 23/06/2021 16:07:22

Bonjour,

Je voulais savoir si un .bat (Windows) ou .sh (Linux) peut appeler le script psql avec 1, 2 ... n paramètres qui sont reçus et utilisés dans un script (via "&" pour Oracle et ":" pour psql)  ?

Merci, Catherine.

#9 Re : Général » Passage d'une variable OS/script psql » 23/06/2021 15:54:52

Bonjour,

Merci pour cette réponse, la variable préfixée de ":" peut provenir d'un fichier de commande de l'OS?

A fait, comment s'appelle la table bidon (dual sous Oracle) ? Merci encore, Catherine.

Ci-dessous, un exemple Oracle avec 2 variables transmises par un batch  :

Spool &1.-Aiguillage.Log
/

Column Aiguillage    new_value NeueAiguillage
Column Chemin         new_value NeueChemin 
Column Espace         new_value NeueEspace

Select EDITIONS.Fnc_CNAV_SNGI_Aiguillage('&2') Aiguillage From Dual; 
@&NeueAiguillage

Spool Off;

Quit
/

#10 Général » Passage d'une variable OS/script psql » 23/06/2021 15:02:03

Catherine
Réponses : 7

Bonjour,

Quel est l'équivalent du "&" sous Oracle pour traiter dans un script psql une variable transmise par un fichier de commande de l'OS ?

Merci beaucoup, cordialement, Catherine.

Pied de page des forums

Propulsé par FluxBB