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

PL/SQL Oracle Discussion :

Gestion exception ORA-00001


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Par défaut Gestion exception ORA-00001
    Bonjour à tous.

    J'ai une question un peu bête mais à laquelle j'ai pas trouvé de réponse.
    Je voudrais insérer dans une tale le contenu d'une autre tout en gérant l'exception "ORA-00001: violation de contrainte unique"
    Par exemple j'ai deux tables test_1 et test_2:

    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
    create table test_1
    (
      TEST VARCHAR2(64) not null
    );
    alter table 
      test_1 add constraint test_1_pk primary key (TEST);
    insert into test_1 values('bbb');
    commit;
     
    create table test_1
    (
      TEST VARCHAR2(64) not null
    );
    alter table 
      test_1 add constraint test_1_pk primary key (TEST);
    insert into test_1 values('bbb');
    commit;
    insert into test_1 values ('aaa');
    insert into test_1 values ('bbb');
    insert into test_1 values ('ccc');
    commit;
    Et quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into test_1 select * from test_2
    je voudrais que l'exception sur la valeur 'aaa' soit tout simplement ignorée et
    l'instruction continue.

    NB : Je ne veux pas utiliser de curseur ni de boucle parce que les tables sont assez volumineuses.

    Quelqu'un pourrait-il m'aider?
    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Ajoutez une clause WHERE filtrant les lignes de la table 2 qui n'appartiennent pas à la table 1

  3. #3
    Membre éclairé Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Par défaut
    Merci pour votre réponse, mais selon votre expérience, comparée à la requête sans clause where cela n'affecterait pas trop la performance?

  4. #4
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Je crains qu'il ne s'agisse pas de performance mais simplement de faisabilité.
    Si la condition porte sur une colonne indexée, cela ne devrait pas être un problème. Sinon, je ne vois pas comment intercepter l'erreur sans curseur ni collection

  5. #5
    Membre éclairé Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Par défaut
    OK Merci SheikYerbouti, je me lance.
    En passant je tiens à vous féliciter et à vous encourager pour vos excellents tutoriels sur le site sans lesquels je ne serais pas ici aujourd'hui
    Bonne continuation.

  6. #6
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    ... A moins que ...

    Voir cette entrée de la FAQ

Discussions similaires

  1. Gestion de l'exception ORA-02291
    Par Stouille89 dans le forum PL/SQL
    Réponses: 5
    Dernier message: 08/08/2008, 15h40
  2. Réponses: 2
    Dernier message: 15/11/2005, 09h58
  3. Gestion exceptions sql server 2000
    Par gdido dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/10/2005, 10h27
  4. Réponses: 4
    Dernier message: 15/06/2004, 17h36
  5. Exemples XMLGram Chart et Gestion Exception
    Par Sylvain James dans le forum XMLRAD
    Réponses: 5
    Dernier message: 05/05/2003, 18h50

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