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 : Autres langages » example de shell + function pl/sh » 06/02/2010 14:52:59

Bonjour Marc,
Effectivement, cela reste juste un exemple de récupération d'un certains nombres de champs dans un fichier.
Je compare certaines fonctions réalisées en sh + plsql avec  plsh.
Je suis concient des processus mise en oeuvre avec de telles commandes.

Merci de cette information

#2 Re : Autres langages » example de shell + function pl/sh » 05/02/2010 12:22:41

Merci de l'info.
J'utilise le -t de la commande psql mais pour les premières unités, j'ai constaté qu'il y avait toujours des espaces.
Je suis sur Ubuntu 9.1

#3 Autres langages » example de shell + function pl/sh » 01/02/2010 15:45:09

jydo44
Réponses : 6

Récuperation en shell d'un numéro de sequence

seq="`sudo -u <<user>> psql <<base>>  -t -c "select nextval('sequence')" | sed 's/ //g'`"

le sed permet de supprimer les espace.

Un exemple de function pl/sh avec utilisation de nawk pour mise en forme du résultat

Recherche dans un fichier xml ($2) de plusieurs balises pour récuperer l'information contenu dans celle-ci avec les commandes grep, cut, sed
Le sed permet de reformater la date avec des tirets
Je passe la variable de la séquence à nawk  avec le -v id_client=$3

appel de la function

sudo -u <<user>> psql <<base>> -c "select sh_client('<<repertoire>>','<<fichier>>',$seq);"
CREATE OR REPLACE FUNCTION sh_client(repertoire text, fichier text, seq integer)
  RETURNS integer AS
$BODY$#!/bin/sh
cd $1
grep -E "<Nom>|<TypeMessage>|<DomaineDeFlux>|<Date>" $2 | cut -d">" -f2 | cut -d"<" -f1 | sed "s/[/]/-/g" | 
nawk -v id_client=$3 '{cp=split($0,st,"-")} \
    {if (cp!=1) ligne=ligne" "st[3]"-"st[2]"-"st[1]","; \
      else 
     ligne=ligne"\047"$0"\047,"; 
    }END{gsub(" ","",id_client);  
     ligne=id_client" "ligne; 
     ligne="Insert into clients values ("substr(ligne,1,length(ligne)-1)");"; 
     print ligne > "'client.sql'"}'

exit 0$BODY$
  LANGUAGE 'plsh' VOLATILE
  COST 100;
ALTER FUNCTION sh_client(text, text,integer) OWNER TO postgres;

Enfin j'injecte dans ma base le fichier résultant.

sudo -u <<user>> psql <<base>> -q -f  "client.sql"

J'aurai pu aussi le faire dans la fonction mais j'ai contaté qu'avec plusieurs lignes, les performances sont diminuées.

#5 Autres langages » PL/SH » 23/01/2010 19:33:20

jydo44
Réponses : 0

Idéale pour des traitement en shell de fichier avec awk
et intégration dans des tables.

#6 Site PostgreSQL.fr » Pl/SH » 22/01/2010 13:29:22

jydo44
Réponses : 4

Bonjour,

Est il possible d'ouvrir une rubrique sur pl/sh?
J'ai commencer à développer avec ce module.
Et je souhaiterais faire part de son utilisation très performante.


Cordialement,

Jean Yves doleux

#7 Demandes » Recherche d'emploi de DBA PostgreSQL sur la Nantaise (44) » 15/10/2009 12:45:23

jydo44
Réponses : 1

Bonjour,

Je sors actuellement de 2 longues missions sur des architectures Postgresql.
Je recherche une mission sur le 44, 49 ou 85.
Je transmettrai mon cv et mes coordonnés pour toutes propositions.
Vous pouvez me contacter par mail : jeanyves.doleux@free.fr

Merci de vos propositions

Pied de page des forums

Propulsé par FluxBB