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 :

Gestion des erreurs


Sujet :

SQL Oracle

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 23
    Par défaut Gestion des erreurs pour Oracle
    bonjour,
    je travaille actuellement avec Oracle, et uniquement en sql brut.

    Mon client me fournit un ou plusieurs fichiers, que je charge dans des tables de travails afin d'y ajouter des contrôles de validités pour chaque champs.

    Comment puis je faire pour que lorsque ma donnée n'est pas valable je puisse la sortir dans une autre table appelé table de rejet afin de répertorier tous les enregistrements qui n'auront pas fonctionner.

    Merci

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Pourquoi ne pas utiliser Sql*Loader ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 23
    Par défaut
    Effectivement je n'y avais pas pensé, je vais essayer cette solution.

    Merci

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    dans le cas présent, une table externe permettrait de s'affranchir du chargement du fichier dans des tables de travail

  5. #5
    Membre Expert Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Par défaut
    Ah bon ? Mais comment on fait pour gérer les rejets avec une table externe ?

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    il me semble bien que c'est comme SQL*Loader mais j'avoue que je ne me souviens pas

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 23
    Par défaut
    effectivement à force de me renseigné j'ai pu constater qu'avec un sql loader c'est faisable pour le fichier bad et discard, sauf que les contrôles doivent se faire sur des données précisent.

    dans mon cas je ne fais que des contrôles sur des format de données et avec pour deuxième critères des jointures donc pas possible dans sql loader.

    Si quelqu'un d'uatre à une idée elle est la bien venue.

  8. #8
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    autre idée déjà donnée

    sinon tu loades les données dans une table et ensuite tu vérifies tes régles de gestion dans cette table... moins bon que table externe mais même principe

  9. #9
    Membre Expert Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Par défaut
    Comme Fred_D dans ce cas :

    Table externe. Tu lis cette table et tu insères les données qui répondent à tes conditions dans une table OK et celles qui n'y répondent pas dans une table PAS_OK.

    Si le format du fichier n'est pas fiable :
    Tu utilises SQL*Loader pour charger les données correctes dans une table DONNEES_BRUTES et les pas correctes seront déplacées dans le fichier de discard.
    Puis tu lis cette table et soit :
    - tu insères les données qui répondent à tes conditions dans une table OK et celles qui n'y répondent pas dans une table PAS_OK.
    - tu mets à jour un champ OK de la table à 1 si les données répondent à tes conditions et à 0 si elles n'y répondent pas.

    Note : si la partie lire / écrire / mettre à jour est trop compliquée en SQL, passe par du PL/SQL.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 23
    Par défaut
    oui sauf que je n'ai pas le droit au pl/sql sinon il y a longtemps que j'aurais tenter cette solution mais l'idée est bonne et je vais m'y pencher.

  11. #11
    Membre Expert Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Par défaut
    Bah c'est pas vraiment un problème, juste que ça peut être un peu lourd en SQL.

    La question qui se pose est : le format des fichiers en entrée est-il fiable ou pas ?

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 23
    Par défaut
    a priori oui mais bon on se méfie quand même

  13. #13
    Membre Expert Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Par défaut
    Ben si c'est à priori oui, alors tu peux partir sur les tables externes sans SQL*Loader, puisque SI le fichier est pourri, ça sera un incident.

    Par contre si ça fait partie du cahier des charges de pouvoir supporter un fichier pourri et surtout de pouvoir sortir les données qui ne respectent pas le format (je ne parle même pas des règles supplémentaires que tu veux appliquer, juste le format) alors je pense que SQL*Loader est une bonne solution. A moins que quelqu'un ici ne sache comment gérer les exceptions et les discard avec une table liée comme on peut le faire sous SQL*Loader.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 23
    Par défaut
    par pure hypothèse que le format soit pourris je vais passer par le sql loader.

    car vu que le cahier des charges changent en permanence je préfère prévenir que guérir.

    en tout cas merci pour les conseils, et je tiens au courant si mon dév aboutit.

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 23
    Par défaut
    Bon voilà pas pû revenir avant mais mon dev à aboutit et effectivement l'utilisation du sql loader etait la meilleure solution.

    En tout cas merci à tout ceux qui m'on filé un coup de main.

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

Discussions similaires

  1. [FB] Gestion des erreurs et application francophone
    Par Benjamin GAGNEUX dans le forum Installation
    Réponses: 10
    Dernier message: 20/05/2006, 14h54
  2. [struts][Datasource]Gestion des erreurs
    Par GreenJay dans le forum Struts 1
    Réponses: 8
    Dernier message: 15/09/2004, 16h51
  3. [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
  4. [XSLT]Est ce qu'il y'a la gestion des erreur en xslt ?
    Par miloud dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/02/2004, 17h19
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 22h41

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