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 :

Une erreur : ORA-02291


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 196
    Par défaut Une erreur : ORA-02291
    Bonjour,
    j'obtiens l'erreur suivante (imprim écran en pièce jointe) :
    ORA-02291
    lorsque je rentre mes données dans coucou2 et je vois pas ce qui cloche:

    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
    create table coucou1
    (
      ch2 varchar2(50),
      ch1 char(12),
      ch3 date,
      ch4 varchar2(7),
      ch5 number,
      ch6 varchar2(12),
      ch7 varchar2(3),
      ch8 float,
      ch9 integer default 0,
      ch10 date default null,
      ch11 varchar2(4),
      constraint pk_coucou1 primary key(ch1 , ch2)
    );
     
    create table coucou2
    (
      ch1 char(12),
      ch2 varchar2(50),
      ch3 date,
      ch4 number,
      ch5 varchar2(4),
      constraint pk_coucou2 primary key(ch1 , ch2, ch3),
      constraint fk_1_2 foreign key(ch1 , ch2) references coucou1(ch1 , ch2) on delete cascade
    );
    Merci de votre aide
    Images attachées Images attachées  

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Par défaut
    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
    32
    33
    34
     
    SQL> CREATE TABLE coucou1
      2  (
      3    ch2 varchar2(50),
      4    ch1 char(12),
      5    ch3 date,
      6    ch4 varchar2(7),
      7    ch5 number,
      8    ch6 varchar2(12),
      9    ch7 varchar2(3),
     10    ch8 float,
     11    ch9 integer DEFAULT 0,
     12    ch10 date DEFAULT NULL,
     13    ch11 varchar2(4),
     14    constraint pk_coucou1 PRIMARY KEY(ch1 , ch2)
     15  );
     
    Table créée.
     
    SQL>  
    SQL> CREATE TABLE coucou2
      2  (
      3    ch1 char(12),
      4    ch2 varchar2(50),
      5    ch3 date,
      6    ch4 number,
      7    ch5 varchar2(4),
      8    constraint pk_coucou2 PRIMARY KEY(ch1 , ch2, ch3),
      9    constraint fk_1_2 FOREIGN KEY(ch1 , ch2) REFERENCES coucou1(ch1 , ch2) ON DELETE cascade
     10  );
     
    Table créée.
     
    SQL>
    Ton message d'erreur référence une autre FK dénommée FK_REF_PARAM
    Quelle est cette contrainte qui n'apparaît pas dans ton script ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 196
    Par défaut
    ha oui, j'ai renommé mes contraintes pour pas tout dévoiler^^ dsl

    fk_1_2=FK_REF_PARAM

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 196
    Par défaut
    en fait, il ne me met pas l'erreur si j'entre une ligne, mais si je fais cette requête, il me renvoie l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into coucou1 (select * from coucou3);
    et coucou3 à la forme suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    create table coucou3
    (
      ch1 char(12),
      ch2 varchar2(50),
      ch3 date,
      ch4 number,
      ch5 varchar2(4),
      constraint pk_coucou3 primary key(ch1 , ch2)
    );

  5. #5
    Membre Expert
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Par défaut
    Je pense qu'il te faut reprendre depuis le début ton process car je n'ai aucun soucis... mis à part que coucou1 n'est pas de la même structure que coucou3 donc le INSERT .. (SELECT *..) ne peut pas fonctionner

    Il faut que tu précise les colonnes de coucou1 et coucou3 et qu'il y ait concordance dans le nombre et le type de données du SELECT et de l'INSERT

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    SQL> CREATE TABLE coucou1
      2  (
      3    ch2 varchar2(50),
      4    ch1 char(12),
      5    ch3 date,
      6    ch4 varchar2(7),
      7    ch5 number,
      8    ch6 varchar2(12),
      9    ch7 varchar2(3),
     10    ch8 float,
     11    ch9 integer DEFAULT 0,
     12    ch10 date DEFAULT NULL,
     13    ch11 varchar2(4),
     14    constraint pk_coucou1 PRIMARY KEY(ch1 , ch2)
     15  );
     
    Table créée.
     
    SQL> 
    SQL> CREATE TABLE coucou2
      2  (
      3    ch1 char(12),
      4    ch2 varchar2(50),
      5    ch3 date,
      6    ch4 number,
      7    ch5 varchar2(4),
      8    constraint pk_coucou2 PRIMARY KEY(ch1 , ch2, ch3),
      9    constraint fk_1_2 FOREIGN KEY(ch1 , ch2) REFERENCES coucou1(ch1 , ch2) ON DELETE cascade
     10  );
     
    Table créée.
     
    SQL> 
    SQL> CREATE TABLE coucou3
      2  (
      3    ch1 char(12),
      4    ch2 varchar2(50),
      5    ch3 date,
      6    ch4 number,
      7    ch5 varchar2(4),
      8    constraint pk_coucou3 PRIMARY KEY(ch1 , ch2)
      9  );
     
    Table créée.
     
    SQL> 
    SQL> 
    SQL> insert into coucou3 VALUES ('TEST','1',TRUNC(sysdate),1,NULL);
     
    1 ligne créée.
     
    SQL> insert into coucou3 VALUES ('TEST','2',TRUNC(sysdate),2,NULL);
     
    1 ligne créée.
     
    SQL> insert into coucou3 VALUES ('TEST','3',TRUNC(sysdate),3,NULL);
     
    1 ligne créée.
     
    SQL> insert into coucou3 VALUES ('TEST','4',TRUNC(sysdate),4,NULL);
     
    1 ligne créée.
     
    SQL> insert into coucou3 VALUES ('TEST','5',TRUNC(sysdate),5,NULL);
     
    1 ligne créée.
     
    SQL> insert into coucou3 VALUES ('TEST2','1',TRUNC(sysdate),6,NULL);
     
    1 ligne créée.
     
    SQL> insert into coucou3 VALUES ('TEST2','2',TRUNC(sysdate),7,NULL);
     
    1 ligne créée.
     
    SQL> 
    SQL> commit;
     
    Validation effectuée.
     
    SQL> insert into coucou1 (select * from coucou3);
    insert into coucou1 (select * from coucou3)
                *
    ERREUR à la ligne 1 :
    ORA-00947: nombre de valeurs insuffisant
     
     
    SQL> insert into coucou1(ch1,ch2) (SELECT ch1, ch2 FROM coucou3);
     
    7 ligne(s) créée(s).
     
    SQL> commit;
     
    Validation effectuée.
    PS : Le Type CHAR est à éviter

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 196
    Par défaut
    oups, dsl encore une erreur de ma part, la requête qui ne fonctionne pas est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO coucou2 (SELECT * FROM coucou3);
    là il y aura le même type et le même nombre de données

    Et que mettre à la place de char?

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

Discussions similaires

  1. Une erreur ORA-06502 étrange
    Par jeremzzz dans le forum Forms
    Réponses: 6
    Dernier message: 15/03/2012, 15h18
  2. Réponses: 4
    Dernier message: 14/04/2011, 12h12
  3. Réponses: 19
    Dernier message: 17/03/2011, 14h30
  4. l'erreur ora- 02291
    Par killua86 dans le forum SQL
    Réponses: 1
    Dernier message: 29/06/2010, 19h45
  5. [Oracle 10g] Comment résoudre une erreur ORA-3000
    Par DoRiane dans le forum Oracle
    Réponses: 3
    Dernier message: 10/04/2006, 09h44

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