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

SQL Oracle Discussion :

peut-on intercepter une erreur ?


Sujet :

SQL Oracle

  1. #1
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Points : 638
    Points
    638
    Par défaut peut-on intercepter une erreur ?
    UPDATE TAB SET V = X * Y / Z;

    se plante car V est trop court (5,2)

    Pour ne pas modifier le format de V (6,2), peut-on faire en sorte que V soit forcé à 999.99 en cas de dépassement de capacité ?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 316
    Points : 388
    Points
    388
    Par défaut
    si tu est en pl/sql il faut utiliser EXCEPTION pour trapper l'erreur
    en SQL pur je ne sait pas si cela est possible.

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 394
    Points
    18 394
    Par défaut
    En SQL pur il faut le coder en dur.
    En supposant que le nombre soit positif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE TAB
    SET V = CASE WHEN X * Y / Z >= 1000 THEN 999.99 ELSE X * Y / Z END;

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 316
    Points : 388
    Points
    388
    Par défaut
    damned ,
    j'avais tenté le case when et je m'etais tromper dans la
    syntaxe et j'avais cru que ce n'etait pas possible en update.

  5. #5
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Points : 638
    Points
    638
    Par défaut
    MERCI. Cela répond exactement à mon problème

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par Waldar Voir le message
    CASE WHEN X * Y / Z >= 1000 THEN 999.99 ELSE X * Y / Z END
    Tu veux dire least(X * Y / Z, 999.99)

  7. #7
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 394
    Points
    18 394
    Par défaut
    Oui, c'est plus simple, j'avais commencé à bidouiller avec les valeurs négatives et puis j'ai abandonné en cours de route !

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

Discussions similaires

  1. intercepter une erreur sous report
    Par RHUDY dans le forum Oracle
    Réponses: 1
    Dernier message: 14/09/2006, 20h49
  2. intercepter une erreur de shell
    Par Sephy dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/07/2006, 11h37
  3. Réponses: 16
    Dernier message: 29/05/2006, 17h52
  4. [VB.NET] intercepter une erreur de DTS
    Par HULK dans le forum Windows Forms
    Réponses: 3
    Dernier message: 04/04/2006, 08h49
  5. comment intercepté une erreur
    Par Guillau.laurent dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 30/03/2006, 09h28

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