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 lors de la création d'une table


Sujet :

SQL Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Points : 75
    Points
    75
    Par défaut Problème lors de la création d'une table
    J'ai un peu du mal lors de la création d'une table.

    Voila ma requête qui génère des erreurs.
    CREATE TABLE post (
    postid number(10) PRIMARY KEY ,
    forumid number(10) NOT NULL,
    parentid number(10) default '0',
    utilisateur varchar(100) default USER ,
    titre varchar(250) default '',
    datedecreation number(10) DEFAULT CURRENT_DATE ,
    pagetext mediumtext NOT NULL,
    UNIQUE (parentid ,datedecreation ),
    UNIQUE (utilisateur ,datedecreation ),
    UNIQUE (forumid ,titre ),
    UNIQUE (forumid ,titre )
    ) ;
    si vous pouvez m'aidez à résoudre le problème, Merci

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Voila ma requête qui génère des erreurs.
    Oui, et bien lesquelles ?

    Vous êtes sûr d'être sur Oracle, à lire votre requête on dirait du MySQL.

  3. #3
    Membre confirmé

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Points : 503
    Points
    503
    Par défaut
    Bonjour.
    Que représente ceci?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UNIQUE (parentid ,datedecreation ),
    UNIQUE (utilisateur ,datedecreation ),
    UNIQUE (forumid ,titre ),
    UNIQUE (forumid ,titre )
    Des clés, je suppose, mal écrites dans ce cas.

  4. #4
    McM
    McM est déconnecté
    Expert éminent

    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
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Faut rajouter le mot clé CONSTRAINT devant les contraintes.

    Un show error te donne les erreurs, et c'est bien de les porter aussi
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Points : 75
    Points
    75
    Par défaut
    J'ai plus l'habitude de travailler sur Mysql et j'ai encore un peu de mal à m'adapter.

    UNIQUE (parentid ,datedecreation ),
    UNIQUE (utilisateur ,datedecreation ),
    UNIQUE (forumid ,titre ),
    UNIQUE (forumid ,titre )
    Je voudrai rendre unique le plusieurs champs entre eux.

    L'erreur est la suivante.

    ORA-00902: type de données non valide

    Pouvez vous me ré expliquer comment je doit placer les contraintes.
    Et comment je peux faire des key unique sur plusieurs champs.
    Merci bien.

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Déjà vos champs sont mal typés.
    varchar -> varchar2.
    mediumtext -> un clob peut-être ?

    Créez votre table "simple" et ajouter les contraintes par la suite : ainsi vous avancerez petit à petit et vous découvrirez et apprendrez à corriger vos erreurs de syntaxe.

  7. #7
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour,

    Tu peux t'inspirer de ca

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE TABLE foo
                 (
                              a NUMBER NOT NULL                                             ,
                              b VARCHAR(20)                                                 ,
                              CONSTRAINT Pk_foo PRIMARY KEY (a) USING INDEX TABLESPACE users,
                              UNIQUE (b) USING INDEX (CREATE UNIQUE INDEX uq_b ON foo(b) tablespace users)
                 );


    plus généralement,

    http://download.oracle.com/docs/cd/B...indexes003.htm

    asktom.oracle.com tahiti.oracle.com otn.oracle.com

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.


    phrase chinoise issue du Huainanzi

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Points : 75
    Points
    75
    Par défaut
    Ok merci bien ;

    J'ai refait étape par étape, mais je ne comprend ceci fonctionne :
    CREATE TABLE post (
    postid number(10) PRIMARY KEY ,
    forumid number(10) NOT NULL,
    parentid number(10) default '0',
    utilisateur varchar(100) default USER ,
    titre varchar(250) default '',
    datedecreation date DEFAULT CURRENT_DATE ,
    pagetext varchar(4000) NOT NULL
    ) ;
    alors que ceci non :
    CREATE TABLE post (
    postid number(10) ,
    forumid number(10) NOT NULL,
    parentid number(10) default '0',
    utilisateur varchar(100) default USER ,
    titre varchar(250) default '',
    datedecreation date DEFAULT CURRENT_DATE ,
    pagetext varchar(4000) NOT NULL,
    CONSTRAINTE PK_post PRIMARY KEY (postid )
    ) ;

    ERREUR : ORA-00907: parenthèse de droite absente

  9. #9
    Membre confirmé 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
    Points : 534
    Points
    534
    Par défaut
    Tu as mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CONSTRAINTE PK_post PRIMARY KEY (postid )
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CONSTRAINT PK_post PRIMARY KEY (postid )
    Il y'a pas de "E" à "CONSTRAINT"

    Si tu es nouveau dans oracle, commence par te documenter sur la syntaxe ça t'éviterait de perdre du temps. Si tu veux aller vite, utilise les outils comme sqldevelopper ou tu n'auras qu'a cliquer pour créer tes tables (même si c'est pas la meilleure solution).

    A++++++++++
    "Celui qui reconnaît consciemment ses limites est le plus proche de la perfection." Johann Wolfgang

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 05/08/2009, 12h30
  2. Réponses: 8
    Dernier message: 06/06/2007, 17h03
  3. Réponses: 4
    Dernier message: 04/06/2007, 11h04
  4. Problème lors de l'exportation d'une table
    Par romrai dans le forum Access
    Réponses: 4
    Dernier message: 04/07/2006, 14h35
  5. Clé étrangère problème lors de la création de la table.
    Par snoopy69 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 18/08/2005, 08h15

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