Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Sql*Plus
Sql*Plus Forum d'entraide sur Oracle Sql*Plus
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 20/09/2007, 10h46   #1
Invité régulier
 
Inscription : février 2004
Messages : 30
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : février 2004
Messages : 30
Points : 9
Points : 9
Par défaut SQL Plus Et Shell Linux

Bonjour,

Je dois effectuer un script shell utilisant SQLPlus. Tout va bien sauf la gestion d'erreur lié à oracle.
Je m'explique:
Ma commande:
Code :
 $SQLPLUS -s $user/$passwd@Base @script.sql $Paramêtres
Les erreurs SQL du script sont bien gérées. Le script consiste à effectuer une requête dont le résultat est placé dan $Paramètres (en spool).

Je voudrais tester les erreurs liées à la connexion à la base telles que base inexistante, user ou passwd incorrect ... .
Avec la commande ci-dessus, il y a un plantage mais le SQLPLUS tourne toujours donc mon script shell aussi. Je n'ai donc pas de plantage propre de mon fichier extract.bat.
y a -t-il un moyen de récupérer toutes les erreurs (tout en quittant sqlplus) pour permettre la suite de l'exécution de extract.bat?
J'avais pensé à un test de connexion en début de script shell, mais j'ai le même pb: en cas de pb de user, mon batch est en attente au lieu de planter.


Merci d'avance, en espérant avoir été clair

Yann
Dobyan08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2007, 11h25   #2
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549

Merci d'indiquer toujours la version !!!
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2007, 11h28   #3
Rédacteur
 
Inscription : décembre 2002
Messages : 2 397
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 397
Points : 3 298
Points : 3 298
Vous devriez creuser la piste du
Code :
whenever SQLERROR EXIT n
Dès qu'une erreur d'exécution SQL est rencontrée, votre script se termine en renvoyant le code erreur que vous indiquez.
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2007, 11h54   #4
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
bon, pour les erreurs mentionnées, -L devrait suffire non?

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
 
$ sqlplus -L scott/xxx@lsc08
 
SQL*Plus: Release 11.1.0.6.0 - Production ON Thu Sep 20 12:00:13 2007
 
Copyright (c) 1982, 2007, Oracle.  ALL rights reserved.
 
ERROR:
ORA-01017: invalid username/password; logon denied
 
 
SP2-0751: Unable TO connect TO Oracle.  Exiting SQL*Plus
$ echo $?
1
$ sqlplus -L scott/xxx@lsc999
 
SQL*Plus: Release 11.1.0.6.0 - Production ON Thu Sep 20 12:00:19 2007
 
Copyright (c) 1982, 2007, Oracle.  ALL rights reserved.
 
ERROR:
ORA-12154: TNS:could NOT resolve the connect identifier specified
 
 
SP2-0751: Unable TO connect TO Oracle.  Exiting SQL*Plus
$ echo $?
1
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2007, 13h39   #5
Rédacteur
 
Inscription : décembre 2002
Messages : 2 397
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 397
Points : 3 298
Points : 3 298
Citation:
Envoyé par laurentschneider Voir le message
bon, pour les erreurs mentionnées, -L devrait suffire non?
Excellent cette option, je ne la connaissois pas !
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2007, 14h12   #6
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
c'est dès la 9i !
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2007, 14h14   #7
Invité régulier
 
Inscription : février 2004
Messages : 30
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : février 2004
Messages : 30
Points : 9
Points : 9
Ok j'ai essayé le "-L" et ça marche !!
Merci beaucoup.
Dobyan08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h08.


 
 
 
 
Partenaires

Hébergement Web