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 :

Problème d'ORA-0001 en insert à contourner.


Sujet :

Oracle

  1. #1
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 38
    Par défaut Problème d'ORA-0001 en insert à contourner.
    Bonjour

    Je souhaiterais mettre à la suite des lignes d'une table le contenu d'une autre mais il m'indique une ora 0001.

    Comment contourner le problème.

    Merci

    Fabien

  2. #2
    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
    avec un curseur et une gestion d'exception... sinon tu ajoutes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND NOT EXISTS (<requête pour trouver la ligne dans la table>)

  3. #3
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 38
    Par défaut
    LA commande quer je souhaite utiliser est :
    insert into xxxx (select * from yyyy@zzzz.world);

    Où dois-je mettre le "AND NOT EXISTS" la dedans ?

    Fabien

  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 la sous-requête qui sélectionne les lignes à insérer

  5. #5
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 38
    Par défaut
    J'avoue que je ne vois pas où mettre ça. Peux-tu me donner la commande.
    N'oublie pas qu'il me faut tout le contenu de la table.

    Je rappelle la commande orginale:

    insert into recpart (select * from recpart@toto.world);

    merci
    fabien

  6. #6
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 38
    Par défaut
    Et en faisant un export et un import ensuite car comme les tables on le même nom. Il met une erreur ORA-0001à chaque ligne déjà existante mais est-ce vraiment ? Il remplit la table avec le reste mais je me demande s'il ne se fit pas plutôt à l'index s'il n'existe pas déjà ou bien au contenu réel de la ligne ?
    Une explication ?
    Merci

  7. #7
    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
    Par défaut
    Citation Envoyé par fmoriet
    LA commande quer je souhaite utiliser est :
    insert into xxxx (select * from yyyy@zzzz.world);

    Où dois-je mettre le "AND NOT EXISTS" la dedans ?

    Fabien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    insert into xxx 
      (select * from yyyy@zzzz.world t 
        where not exists (select * from xxx where xxx.pk = t.pk));
    tu as peut-être besoin de la commande MERGE si tu veux faire un UPSERT (update/insert)

  8. #8
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 38
    Par défaut
    Parfait.

    Merci

    Fabien

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

Discussions similaires

  1. [PL/SQL] Problème de ora 06512
    Par claralavraie dans le forum Oracle
    Réponses: 9
    Dernier message: 08/12/2010, 10h40
  2. Réponses: 15
    Dernier message: 19/02/2007, 14h13
  3. Réponses: 4
    Dernier message: 08/01/2007, 13h06
  4. [10g] erreur ORA-01652 suite à INSERT-SELECT
    Par TG37140 dans le forum Administration
    Réponses: 5
    Dernier message: 18/12/2006, 19h45
  5. Problème d'Update et D'Insert
    Par domux dans le forum JDBC
    Réponses: 6
    Dernier message: 10/07/2006, 11h31

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