Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/10/2011, 17h34   #1
Invité de passage
 
Inscription : décembre 2008
Messages : 16
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 16
Points : 0
Points : 0
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 :
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 :
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 :
ALTER TABLE Chercheur ADD (Date_Naissance DATE);
Mad-7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 18h00   #2
Membre confirmé
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 181
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 181
Points : 267
Points : 267
c'est NumCh qui est NUMBER(2) et ne doit pas etre entre guillemets ..
Jean.Cri1 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/10/2011, 19h41   #3
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

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

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
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 :
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.
__________________
Publications: http://schelabi.developpez.com/
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 20h22   #4
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
C'est à casue de :
Citation:
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 :
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)
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h17.


 
 
 
 
Partenaires

Hébergement Web