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 :

problem avec insert


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Software engineer
    Inscrit en
    Août 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Software engineer

    Informations forums :
    Inscription : Août 2008
    Messages : 139
    Par défaut problem avec insert
    salut,
    je travaille avec oracle 10g express edition et j'ai le problem suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    create table EMP(
    	EMPNO		number(4),
    	ENAME		varchar2(30) not null,
    	JOB	           char(10),
    	MGR 		number(4),
    	HIREDATE	date ,
    	SAL		number(7,2),
    	DEPTNO		number(2),
    	constraint pri_key primary key(EMPNO)
    );
    la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    insert into EMP
    values (7369,'SMITH','CLERK',7902,'17-DEC-80',800,20);
    donne l'erreur suivante :
    CaractÞre non numÚrique trouvÚ Ó la place d'un caractÞre numÚrique

    le type date doit prendre quoi exactement ? chaine de caractere ?

    merci d'avance

  2. #2
    Membre éprouvé
    Inscrit en
    Février 2009
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 127
    Par défaut
    Bonjour,

    Concernant la date mieux vaut convertir explicitement avec to_date

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TO_DATE('17-DEC-80','DD-MON-YY')
    EDIT : Dommage 1min seulement

  3. #3
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Non : Une date n'est pas une chaine de caractère.

    Ca fait 1500000 fois qu'on le dit sur le forum.
    Toujours faire un to_date pour transformer une chaine de caractère en date.
    Et toujours utiliser un format.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TO_DATE('01/02/2009', 'DD/MM/YYYY')

    Edit : Grillé...

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Par défaut
    Une date n'est pas une chaîne de caractères, elle n'a pas de format.
    Mais c'est un type qu'on affiche et qu'on renseigne à l'aide d'une chaîne de caractères.

    Pour afficher une date, vous utilisez la fonction TO_CHAR en précisant le format que vous voulez afficher. Pour renseigner une date, vous utilisez la fonction TO_DATE en précisant le format de la chaîne contenant une "valeur chaîne" possible de votre date.

  5. #5
    Membre confirmé
    Homme Profil pro
    Software engineer
    Inscrit en
    Août 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Software engineer

    Informations forums :
    Inscription : Août 2008
    Messages : 139
    Par défaut
    merci ,le code existe dans un tuto et j'ai cru que le tuto donne des requetes qui tourne , j'ai deja essayer ca en fouillant un peu dans un site d'oracle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    insert into EMP
    values (7369,'SMITH','CLERK',7902,TO_DATE('17-DEC-80','DD-MON-YY'),800,20);
    un autre erreur est apparu : "ce n'est pas un mois valide" ,j'ai essayer aussi ecrire le mois entier en anglais mais le meme problem.

    merci pour vos reponses .

  6. #6
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    Bien sur que ce n'est pas un mois valide, le format de la colonne HIREDATE dans la table EMP est
    et non donc tu dois faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO EMP
    VALUES (7369,'SMITH','CLERK',7902,TO_DATE('17-12-80','DD-MM-YY'),800,20);

  7. #7
    Membre éprouvé
    Inscrit en
    Février 2009
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 127
    Par défaut
    Citation Envoyé par rvfranck Voir le message
    Bien sur que ce n'est pas un mois valide, le format de la colonne HIREDATE dans la table EMP est
    et non donc tu dois faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO EMP
    VALUES (7369,'SMITH','CLERK',7902,TO_DATE('17-12-80','DD-MM-YY'),800,20);
    Je ne comprens pas comment tu vois que le format de HIREDATE n'est pas bon

    Dans ce cas, il y a bien des to_date et avec DD-MON-YYYY !

  8. #8
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 10
    Par défaut
    Citation Envoyé par oswalidos Voir le message
    merci ,le code existe dans un tuto et j'ai cru que le tuto donne des requetes qui tourne , j'ai deja essayer ca en fouillant un peu dans un site d'oracle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    insert into EMP
    values (7369,'SMITH','CLERK',7902,TO_DATE('17-DEC-80','DD-MON-YY'),800,20);
    un autre erreur est apparu : "ce n'est pas un mois valide" ,j'ai essayer aussi ecrire le mois entier en anglais mais le meme problem.

    merci pour vos reponses .
    Ton NLS_DATE_LANGUAGE doit sans doute être = French.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    insert into EMP
    values (7369,'SMITH','CLERK',7902,TO_DATE('17-DEC-80','DD-MON-YY','NLS_DATE_LANGUAGE=America'),800,20);
    ou, en supposant que le NLS_DATE_LANGUAGE = French

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    insert into EMP
    values (7369,'SMITH','CLERK',7902,TO_DATE('17-DEC. -80','DD-MON-YY'),800,20);

  9. #9
    Membre confirmé
    Homme Profil pro
    Software engineer
    Inscrit en
    Août 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Software engineer

    Informations forums :
    Inscription : Août 2008
    Messages : 139
    Par défaut
    Citation Envoyé par loyloy Voir le message
    Ton NLS_DATE_LANGUAGE doit sans doute être = French.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    insert into EMP
    values (7369,'SMITH','CLERK',7902,TO_DATE('17-DEC-80','DD-MON-YY','NLS_DATE_LANGUAGE=America'),800,20);
    ou, en supposant que le NLS_DATE_LANGUAGE = French
    erreur : NSL n'est pas une chaine reconnue ,j'ai essayé NLS_DATE_LANGUAGE='America', mais autre erreur est apparu.

    Citation Envoyé par loyloy Voir le message
    Ton NLS_DATE_LANGUAGE doit sans doute être = French.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    insert into EMP
    values (7369,'SMITH','CLERK',7902,TO_DATE('17-DEC. -80','DD-MON-YY'),800,20);
    le meme erreur : ce mois n'est pas valilde .

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

Discussions similaires

  1. Probleme avec INSERT INTO et select
    Par jmjmjm dans le forum Requêtes
    Réponses: 9
    Dernier message: 28/01/2007, 22h51
  2. [My SQL]probleme avec insert select
    Par jmjmjm dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/01/2007, 11h24
  3. probleme avec insert into
    Par bscorpion dans le forum Langage SQL
    Réponses: 5
    Dernier message: 05/07/2005, 13h00
  4. Problem avec insertion de l'heure
    Par moniphal dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 29/04/2005, 11h27
  5. [ADO.NET] Problème avec Insert dans base de données
    Par mpascolo dans le forum Accès aux données
    Réponses: 9
    Dernier message: 24/01/2005, 09h36

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