Script shell et SQL
Résolu
remousse
Messages postés
299
Date d'inscription
Statut
Membre
Dernière intervention
-
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je créé un script shell dans lequel j'exécute une requête SQL qui me retourne juste un nombre. Ce nombre je veux le stocké dans une variable mais je n'y arrive pas. Je vous mets mon code afin de savoir d'où provient mon erreur.
Par avance merci.
Je créé un script shell dans lequel j'exécute une requête SQL qui me retourne juste un nombre. Ce nombre je veux le stocké dans une variable mais je n'y arrive pas. Je vous mets mon code afin de savoir d'où provient mon erreur.
var='sqlplus user@SID/pwd << ABC set head off select count(*) as "fichier" from MATABLE; exit; ABC' echo $(date +%d-%m-%y" "%H:%M:%S ) "Nombre de fichiers : ${var} " >> requete.txt
Par avance merci.
A voir également:
- Exécuter script sql ligne de commande linux
- Invite de commande - Guide
- Partage de photos en ligne - Guide
- Script vidéo youtube - Guide
- Commande terminal mac - Guide
- Mètre en ligne - Guide
8 réponses
Salut,
Que renvoie la commande seule exactement :
Que renvoie la commande seule exactement :
sqlplus user@SID/pwd << ABC set head off select count(*) as "fichier" from MATABLE; exit; ABC
personnellement, quand je fait un select count(*) from table (que ce soit en ingres (on se moque pas) ou en postgres), j'obtiens un résultat du type :
count
-------
38613
(1 row)
je ne sais pas à quoi correspond le head off, c'est peut-etre pour justement supprimer les headers...
au passage, je programme en sh, et je ne fais pas du tout comme ça...
après, je sais que le sh est justement assez ouvert, mais pour extraire une valeur d'un count, je suis plutot du genre à faire
#!/bin/sh
var='echo "select count(*) from table;"|psql -U user pwd|grep '[0-9]'|grep -v row'
echo $var
attention, j'utilise 'qui s'obtient avec Alt Gr et 7
fonctionnement garanti en sh/postgres
count
-------
38613
(1 row)
je ne sais pas à quoi correspond le head off, c'est peut-etre pour justement supprimer les headers...
au passage, je programme en sh, et je ne fais pas du tout comme ça...
après, je sais que le sh est justement assez ouvert, mais pour extraire une valeur d'un count, je suis plutot du genre à faire
#!/bin/sh
var='echo "select count(*) from table;"|psql -U user pwd|grep '[0-9]'|grep -v row'
echo $var
attention, j'utilise 'qui s'obtient avec Alt Gr et 7
fonctionnement garanti en sh/postgres
Malheureusement sur la machine où je suis je n'ai pas psql je ne peux utiliser que sqlplus...
Merci pour ton aide quand même.
Merci pour ton aide quand même.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
Ma commande me renvoie ceci:
SQL*Plus: Release 10.2.0.5.0 - Production on Fri Oct 28 09:57:12 2011 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production With the Partitioning, Data Mining and Real Application Testing options SQL> SQL> 18546 SQL> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production With the Partitioning, Data Mining and Real Application Testing options
18546 est le nombre que je souhaite récupérer.
Par avance merci
Ma commande me renvoie ceci:
SQL*Plus: Release 10.2.0.5.0 - Production on Fri Oct 28 09:57:12 2011 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production With the Partitioning, Data Mining and Real Application Testing options SQL> SQL> 18546 SQL> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production With the Partitioning, Data Mining and Real Application Testing options
18546 est le nombre que je souhaite récupérer.
Par avance merci
set head off rien
select count(*) as "fichier" from MATABLE ;
exit ;
???
Stop failing the turing test !
select count(*) as "fichier" from MATABLE ;
exit ;
???
Stop failing the turing test !
@dna.factory: la requête que tu me dis me renvoie exactment ce que je veux.
Le problème est que dans ma variable je met la connexion à la base et tout le reste d'où mon résultat que j'ai posté ci-dessus.
J'aimerai juste récupérer 18546 dans une variable que je pourrai utiliser par la suite dans mon script.
Merci.
Le problème est que dans ma variable je met la connexion à la base et tout le reste d'où mon résultat que j'ai posté ci-dessus.
J'aimerai juste récupérer 18546 dans une variable que je pourrai utiliser par la suite dans mon script.
Merci.