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 :

Problème avec Oracle 10g


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Problème avec Oracle 10g
    Voilà j'suis entrain de travailler sur un TP de base de données. C'est plutôt simple comme travail, il n'empêche que j'ai eu une erreur dont j'arrive pas à comprendre la raison.

    En fait ça se produit au niveau du remplissage des tables. L'erreur c'est "caractère non numérique trouvé à la place d'un caractère numérique". Le hic, c'est que dans la création de la table l'attribut en question a été déclaré comme étant un VARCHAR.

    Voilà la table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE Chercheur (NumCh NUMBER(2) NOT NULL,
    NomCh VARCHAR(40) NOT NULL, 
    Genre CHAR NOT NULL, 
    CodeLab VARCHAR(3) NOT NULL, 
    CodeUniversite VARCHAR(10) NOT NULL, 
    CONSTRAINT Primaire1 PRIMARY KEY(NumCh), 
    CONSTRAINT Etrangere FOREIGN KEY(Codelab) REFERENCES Laboratoire(CodeLab),
    CONSTRAINT Etrangere2 FOREIGN KEY(CodeUniversite) REFERENCES Universite(CodeUniversite)
    );

    Et voilà un exemple d'INSERT (l'erreur se déclare à chaque tuple) :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO Chercheur VALUES
    ('1',
    'Salim Ahmed',
    'M',
    'LSI',
    'USTHB');
    PS : L'erreur est signalée sur ce qui est soulignée dans l'INSERT.

    PS2 : J'avais oublié cette modification faite entre-temps....

    *Ajout de l'attribut Date_Naissance*/ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE Chercheur ADD (Date_Naissance DATE);

  2. #2
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 247
    Points : 473
    Points
    473
    Billets dans le blog
    1
    Par défaut
    c'est NumCh qui est NUMBER(2) et ne doit pas etre entre guillemets ..

  3. #3
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Citation Envoyé par Jean.Cri1 Voir le message
    c'est NumCh qui est NUMBER(2) et ne doit pas etre entre guillemets ..

    Est ce que tu es sûr ?

    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
     
    13:39:27 @WEBDEVP>DROP TABLE chercheur;
     
    Table supprimée.
     
    13:39:29 @WEBDEVP>
    13:39:29 @WEBDEVP>CREATE TABLE chercheur (numch NUMBER(2) NOT NULL,
    13:39:29   2  nomch VARCHAR(40) NOT NULL,
    13:39:29   3  genre CHAR NOT NULL,
    13:39:29   4  codelab VARCHAR(3) NOT NULL,
    13:39:29   5  codeuniversite VARCHAR(10) NOT NULL);
     
    Table créée.
     
    13:39:30 @WEBDEVP>
    13:39:30 @WEBDEVP>INSERT INTO chercheur
    13:39:30   2       VALUES ('1', 'Salim Ahmed', 'M', 'LSI', 'USTHB');
     
    1 ligne créée.
     
    13:39:30 @WEBDEVP>
    13:39:30 @WEBDEVP>COMMIT ;
     
    Validation effectuée.
     
    13:39:35 @WEBDEVP>
    Remarque: Evite d'utiliser Varchar, je te suggère d'utiliser varchar2 à la place.

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 948
    Points : 5 847
    Points
    5 847
    Par défaut
    C'est à casue de :
    PS2 : J'avais oublié cette modification faite entre-temps....

    *Ajout de l'attribut Date_Naissance*/ :
    Il faut toujours écrire explicitement les colonnes dans la requête INSERT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO Chercheur (NumCh, NomCh, Genre, CodeLab, CodeUniversite)
    VALUES (1,'Salim Ahmed','M','LSI','USTHB');
    Sans être à l'origine de l'erreur il est très nettement préférable d'éviter les conversions implicites (donc pas de quote autour du chiffre)

Discussions similaires

  1. Problème avec ORACLE 10G
    Par le_misterioso dans le forum Persistance des données
    Réponses: 2
    Dernier message: 13/05/2011, 02h07
  2. Problème pour utiliser RoR avec Oracle 10g XE
    Par fchampreux dans le forum Ruby
    Réponses: 3
    Dernier message: 05/05/2011, 17h21
  3. probléme avec oracle 10g
    Par aymando dans le forum Oracle
    Réponses: 4
    Dernier message: 04/03/2010, 15h10
  4. Problème Delphi 5(oracledataset) avec oracle 10g
    Par FABFAB125 dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/06/2007, 08h59
  5. Réponses: 2
    Dernier message: 27/02/2007, 09h51

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