Vous n'êtes pas identifié(e).
Pages : 1
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
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
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.
Merci de vos réponses.
Idéale pour des traitement en shell de fichier avec awk
et intégration dans des tables.
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
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
Pages : 1