Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Autres systèmes > Unix

Unix Forum d'entraide sur les systèmes Unix et dérivés (*BSD, AIX, etc.). Avant de poster ->F.A.Q BSD F.A.Q. Aix

Réponse
 
Outils de la discussion
Vieux 26/08/2008, 20h33   #1 (permalink)
Nouveau membre du Club
 
Date d'inscription: août 2003
Messages: 53
Par défaut requete sql sous unix

Bonjour,

Je suis pas un pro de unix,

J'ai deux trois questions.

J'ai pas trouver sur le forum, ni sur le net, comment executer une requete sous unix automatiquement? (ex:toute les heures)

-----------------------
Je voudrais aussi faire une requette pour renommer des fiches articles.
Ma table s'appel "article".
Mais uniquement les articles don le code "geo" et egale a "suppri".
renomer les articles par "a supprimer" (ex: 'eric' par "a supprimer"

Dans la table
Code article - Nom - Geo
1231----------eric------suppri


Eventuellement je peux vous envoyer le fichier.

Merci de vos reponses.

Commandeur.
__________________
Commandeur
Commandeur est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/08/2008, 08h35   #2 (permalink)
Membre Expert
 
Avatar de frp31
 
Date d'inscription: juillet 2006
Localisation: toulouse
Messages: 1 474
Par défaut

il faut faire 2 choses

utiliser la crontab (planificateur)

exemple

Citation:
crontab -e
>0 0 * * 1 /chemin/script
lancera le script les lundi à 00h00

quand au script

il peut se comporter comme ça par exemlpe

Citation:
mysql << EOF
select * from TOTO where ERREURS="vrai"
EOF
il peut aussi executer un fichier sql comme par exemple

Citation:
sqlplus options.... @fichier.sql
après ça dépend surtout de quel SGBD tu utilises

mais que utilises les 2 modes de fonctionnements il fonctionneront tous

commande << EOF
commande interne
commande interne
...
commande interne
EOF

commande optionquilitunfichierexternecontenantdescommandesinternes

dans tous les cas ça marche et pas que sql
c'est des archis standardisées sous unix

un exemple concret avec mysql :
Code :
#!/usr/bin/bash
(mysql -u user_de_la_base -h localhost pecoro << EOF
select user from status;
EOF) | tee ./resultat.txt
un exemple avec un fichier externe sous mysql
Code :
#!/bin/sh
mysql -u user -h host << maj_stock.sql 2 > $LOG/WARNING
un exemple avec sqlplus pour oracle :
Code :
usernm='bidule/machin'
REP_PROG=/chemi/vers/le/sql
PROG=truc.sql
LANCE_PROG="sqlplus -s $usernm @$REP_PROG/$PROG"
...

$LANCE_PROG
...
tu peux faire pareil pour d'autres commandes comme ftp ou autre...

Code :
ftp toto << EOF
cd titi
lcd /tmp
mget *.err
cd tutu
put *.retour
bye
EOF
__________________
Bye @+
(\__/)
(o..o)
(") (")

Soutenez le logiciel libre
frp31 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/08/2008, 08h48   #3 (permalink)
Membre Expert
 
Avatar de frp31
 
Date d'inscription: juillet 2006
Localisation: toulouse
Messages: 1 474
Par défaut

Citation:
Envoyé par Commandeur Voir le message
Bonjour,

Je voudrais aussi faire une requette pour renommer des fiches articles.
Ma table s'appel "article".
Mais uniquement les articles don le code "geo" et egale a "suppri".
renomer les articles par "a supprimer" (ex: 'eric' par "a supprimer"

Dans la table
Code article - Nom - Geo
1231----------eric------suppri


Eventuellement je peux vous envoyer le fichier.

Merci de vos reponses.

Commandeur.

quand à la requette sql
elle ressemblera à ça :
Code :
update article set nom='a supprimer' where geo='suppri" ;
ce qui dans un script peut se faire comme indiqué précédement :
Code :
#!/bin/sh
if [ `ps -ef | grep -i mysqld |wc -l` -lt 3 ] ; then
 echo mysql n'est pas démarré : ECHEC DE LA PROCEDURE | tee /var/log/miseajour.err
 exit 1
fi
#si mysql est ok on peut lancer la requette
(
mysql -u user -h localhost << EOF
use nomdatabase ;
update article set nom='a supprimer' where geo='suppri" ;
quit
EOF
) 1>> /var/log/miseajour.log 2>>/var/log/miseajour.err
exit $?
__________________
Bye @+
(\__/)
(o..o)
(") (")

Soutenez le logiciel libre
frp31 est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Autres systèmes > Unix



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 04h44.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter
Copyright 2000-2008 www.developpez.com - Legal informations