IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

catch des erreurs dans SQL+


Sujet :

Oracle

  1. #1
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    Par défaut catch des erreurs dans SQL+
    Bonjour,


    Comment faire pour intercepter au niveau du script les erreurs intervenus lors de l'exécution d'un fichier .sql ?

    Je fais :
    sqlplus ...
    whenever sqlerror exit sql.sqlcode;

    exec ...

    Mon script qui lance SQL+ est en PERL mais je n'arrive pas à récupérer les erreurs (j'utilise la variable $!)


    Qui aurait une idée ?

    Par avance merci,

    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 376
    Points : 402
    Points
    402
    Par défaut
    Coucou,

    Selon ton OS, les codes retour sont limités. Sous UNIX, le retour peux aller de 0 (pas d'erreur) à 255. Si tu as une erreur ORA-01403 (no data found), ton retour SQLCODE 1403 n'est pas valide. Tu auras donc une valeur indéfinie entre 0 et 255.

    Le mieux est d'utiliser des constantes à toi et de logger dans une table par exemple ton erreur. Sinon, tu spool ton script dans un fichier et selon le retour, tu vas vérifier le fichier. Mais ton retour de sqlplus ne peux pas dépasser 255.

    Petit exemple à la con (pas du PERL, du shell)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    sqlplus -s $USER/$PSWD << FIN
    	set pages 0
    	set linesize 250
    	set feedback off
     
    	whenever sqlerror exit 1
    	whenever oserror exit 2
    	@$SCRIPT_SQL
    FIN
    ret=$?
     
    if [ $ret -ne 0 ]
    then
    	case "$ret" in
    		"1")
    			# sqlerror lors de l'execution
    			echo "SQLERROR lors du script"
    			;;
    		"2")
    			# oserror lors de l'execution
    			echo "OSERROR lors du script"
    			;;
    		*)
    			# ??
    			echo "ERREUR NON GEREE"
    			;;
    	esac	
    else
    	echo "Execution terminée avec success"
    fi
    "There are two major products that come out of Berkeley: LSD and UNIX.
    We don't believe this to be a coincidence."
    - Jeremy S. Anderson

    La FAQ Python
    Les cours et tutoriels pour apprendre Python
    Le Forum Python

  3. #3
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    Par défaut
    Merci bcp, je vais essayer.


    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur dans SQL*Loader
    Par AkA dans le forum SQL
    Réponses: 6
    Dernier message: 30/03/2006, 12h30
  2. #ERREUR dans SQL
    Par molene34 dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 22/01/2006, 18h43
  3. [3.0.2]Détection des erreurs dans le Package Explorer
    Par willowII dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 18/08/2005, 18h46
  4. Importer des données dans sql server avec DELPHI ???
    Par moutanakid dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/08/2004, 17h22
  5. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo