Précédent   Forum des professionnels en informatique > Systèmes > Linux
Linux Forum d'entraide sur le système Linux. Avant de poster -> Tutoriels Linux, F.A.Q Linux
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/10/2011, 12h26   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 11
Points : 4
Points : 4
Par défaut KSH: récupérer des sorties de scripts SQL

Bonjour,

Je voudrais récupérer les sorties des exécutions de mes scripts SQL. Cependant même si mon script SQL se termine bien, la sortie est quand même en erreur. Auriez vous une idée pour que j'ai réellment la sortie de mes scripts?

Dans mon code, le fichier test1.sql est un select tout bête. Le deuxième est un select foireux.

Voici mon code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
#lecture du fichier des scripts SQL
echo "Debut lecture fichier $1:"
for line in $(cat $1);
do
        echo "$line"
        sqlplus -s rp9/rp9 <<EOF
@$PATH_FOLDERS/$line
exit 0;
RC=$?
EOF
        echo "Le retour erreur est: "
        if [ $RC -eq 0 ] ; then
        echo "*********** $line est OK"
        else
        echo "*********** $line est en ERROR"
        NB_ERRORS=$NB_ERRORS+1
        echo $line>>$PATH_TMP_FILE
        fi
 
done
echo "Le nombre d erreurs est"
echo $((NB_ERRORS))
 
if [ $NB_ERRORS -eq 0 ] ; then
echo "le traitement s'est bien effectue"
else
Echo "ERROR: il y a eu $((NB_ERRORS)) erreurs au cours du traitement. Les fichiers en erreur sont:"
cat $PATH_TMP_FILE
fi
exit 0

Cela m'affiche:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
Debut lecture fichier liste_sql.txt:
test1.sql
 
CP_LIBELLE
--------------------------------------------------------------------------------
toto1
toto2
toto3
toto4
toto5
toto6
toto7
toto8
toto9
 
 
9 rows selected.
 
Le retour erreur est:
./charger_sql.sh[32]: test: argument expected
*********** test1.sql est en ERROR
test2.sql
Select tx_libelle from _è____;select tx_libelle from _è___
                       *
ERROR at line 1:
ORA-00911: invalid character
 
 
Le retour erreur est:
./charger_sql.sh[32]: test: argument expected
*********** test2.sql est en ERROR
Le nombre d erreurs est
2
./charger_sql.sh[48]: Echo:  not found
test1.sql
test2.sql
nysaken est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/10/2011, 13h55   #2
Invité de passage
 
Inscription : novembre 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 11
Points : 4
Points : 4
personne n'aurait un début de piste?
nysaken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 05h37   #3
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
Bonjour,

d'abord, même si ton fichier s'y prête, il faut éviter de faire for item in $(commande); mais ce n'est pas le problème, ici.

un here-doc, c'est un peu comme un echo pipé à une autre commande.
donc, c'est comme si tu écrivais :
Code :
1
2
3
echo "@$PATH_FOLDERS/$line
exit 0;
RC=$?" | sqlplus -s rp9/rp9
: $RC n'existe pas ! il faut tester $?, qui renvoie le code d'erreur de la commande précédente, à savoir sqlplus.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h52.


 
 
 
 
Partenaires

Hébergement Web