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 :

pb dans mon code SQL


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 25
    Points : 15
    Points
    15
    Par défaut pb dans mon code SQL
    bonjour,

    je suis débutant en SQL et je galère pas mal.
    Je suis sous Oracle et j'ai un exercice a faire qui me pose pas mal de souci, j'espére que vous pourrez m'aidez.

    Voila le code en question :

    ----------------------------------------------------------

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DROP TABLE VENTE;
    //DROP TABLE PRODUIT;
    //DROP TABLE FOURNIS;
    //DROP TABLE ENTCOM;
    //DROP TABLE LIGCOM;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE PRODUIT
    (	CODART CHAR(4 BYTE) NOT NULL ENABLE, 
    	LIBART VARCHAR2(25 BYTE) NOT NULL ENABLE, 
    	STKALE NUMBER(7,0) NOT NULL ENABLE, 
    	STKPHY NUMBER(7,0) NOT NULL ENABLE, 
    	QTEANN NUMBER(7,0) NOT NULL ENABLE, 
    	UNIMES CHAR(5 BYTE) NOT NULL ENABLE, 
    	 CONSTRAINT PK_PRODUIT PRIMARY KEY (CODART)
    ) ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE FOURNIS 
    (	NUMFOU NUMBER(10,0) NOT NULL ENABLE, 
    	NOMFOU VARCHAR2(30 BYTE) NOT NULL ENABLE, 
    	RUEFOU VARCHAR2(30 BYTE) NOT NULL ENABLE, 
    	POSFOU VARCHAR2(5 BYTE) NOT NULL ENABLE, 
    	VILFOU VARCHAR2(25 BYTE) NOT NULL ENABLE, 
    	CONFOU VARCHAR2(15 BYTE) NOT NULL ENABLE, 
    	SATISF NUMBER(3,0), 
    	 CONSTRAINT FOURNIS_PK PRIMARY KEY (NUMFOU)
    ) ;

    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
    CREATE TABLE VENTE 
    (	CODART CHAR(4 BYTE) NOT NULL ENABLE, 
    	NUMFOU NUMBER(10,0) NOT NULL ENABLE, 
    	DELLIV NUMBER(6,0) NOT NULL ENABLE, 
    	QTE1 NUMBER(6,0) NOT NULL ENABLE, 
    	PRIX1 NUMBER(5,2) NOT NULL ENABLE, 
    	QTE2 NUMBER(6,0) NOT NULL ENABLE, 
    	PRIX2 NUMBER(5,2) NOT NULL ENABLE, 
    	QTE3 NUMBER(6,0) NOT NULL ENABLE, 
    	PRIX3 NUMBER(5,0) NOT NULL ENABLE, 
    	 CONSTRAINT VENTE_PK PRIMARY KEY (CODART, NUMFOU), 
    	 CONSTRAINT FK_VENTE_FOURNIS FOREIGN KEY (NUMFOU)
    	  REFERENCES FOURNIS (NUMFOU) ENABLE, 
    	 CONSTRAINT FK_VENTE_PRODUIT FOREIGN KEY (CODART)
    	  REFERENCES PRODUIT (CODART) ENABLE
    ) ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE ENTCOM 
    (	NUMCOM NUMBER(10,0) NOT NULL ENABLE, 
    	OBSCOM VARCHAR(25 BYTE) ENABLE, 
    	DATCOM DATE DEFAULT sysdate ENABLE, 
    	NUMFOU NUMBER(10,0) ENABLE, 
    	 CONSTRAINT NUMCOM_PK PRIMARY KEY (NUMCOM),
     	 CONSTRAINT FK_ENTCOM_FOURNIS FOREIGN KEY (NUMFOU)
    	  REFERENCES FOURNIS (NUMFOU) ENABLE, 
     
    ) ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TABLE LIGCOM 
    (	NUMCOM NUMBER(10,0) NOT NULL ENABLE, 
    	NUMLIG NUMBER(10,0) NOT NULL ENABLE,
    	CODART CHAR(4) NULL ENABLE, 
    	PRIUNI NUMBER(10,0), 
    	QTELIV NUMBER(10,0), 
    	DERLIV DATE, 
    	 CONSTRAINT NUMCOM_PK PRIMARY KEY (NUMCOM),
    	  REFERENCES FOURNIS (NUMFOU) ENABLE,
    	 CONSTRAINT NUMLIG_PK PRIMARY KEY (NUMLIG),
     	 CONSTRAINT FK_LIGCOM_FOURNIS FOREIGN KEY (CODART)
    	  REFERENCES PRODUIT (CODART) ENABLE, 
    ) ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE SEQUENCE entcom_monCompteur
    INCREMENT BY 1
    START WITH 1 ;
     
    INSERT INTO ENTCOM VALUES (entcom_monCompteur.nextval);

    -----------------------------------

    Les 3 premiéres table se créé sans probléme
    Mais il y a des bugs pour les deux derniéres tables ENTCOM et LIGCOM

    Voila les contraintes de ces deux tables:

    Table ENTCOM
    o Tous les champs sont obligatoires sauf les champs
    OBSERVATIONS et NUMFOU
    o Le numéro de commande est un champ compteur auto incrémenté
    de 1
    o La date de commande est par défaut la date du jour
    o Le code fournisseur doit exister dans la table FOURNIS ou être nul
    · Table LIGCOM
    o Tous les champs sont obligatoires, sauf la quantité livrée
    o Le numéro de commande doit exister dans la table ENTCOM
    o Le code produit doit exister dans la table PRODUIT

    Merci d'avance

    A+

  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
    Vous avez une virgule en trop dans le script des deux dernières tables, sur la dernière contrainte.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Merci !

    en effet ces deux virgules étaient de trop.
    Cepandant même en les enlevant j'ai encore des erreurs.
    J'ai remarqué qu'en enlevant les ENABLE des deux tables et bien cela fonctionnait ! j'avou que je ne sais pas pourquoi, si vous avez une idée..j'aimerai bien comprendre.

    A+

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 85
    Points : 62
    Points
    62
    Par défaut
    Pour la table LIGCOM, une et une seule clé primaire est autorisé. Alors est-ce que tu souhaites une clé primaire qui inclut NUMLIG et NUMCOM alors cette contrainte s'écrit comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CONSTRAINT NUMCOM_PK PRIMARY KEY (NUMCOM,NUMLIG) ENABLE,
    et puis il manque une contrainte d'intégrité
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CONSTRAINT FK_NUMCOM_ENTCOM FOREIGN KEY (NUMCOM) 
    REFERENCES ENTCOM (NUMCOM) ENABLE,
    Et donc la création s'écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TABLE LIGCOM 
    (	NUMCOM NUMBER(10,0) NOT NULL ENABLE, 
    	NUMLIG NUMBER(10,0) NOT NULL ENABLE,
    	CODART CHAR(4) NOT NULL ENABLE, 
    	PRIUNI NUMBER(10,0) NOT NULL ENABLE, 
    	QTELIV NUMBER(10,0), 
    	DERLIV DATE NOT NULL ENABLE, 
    	 CONSTRAINT NUMLIG_COM_PK PRIMARY KEY (NUMCOM,NUMLIG) ENABLE,
      CONSTRAINT FK_NUMCOM_ENTCOM FOREIGN KEY (NUMCOM) 
    REFERENCES ENTCOM (NUMCOM) ENABLE,
    	 CONSTRAINT FK_LIGCOM_FOURNIS FOREIGN KEY (CODART)
    	  REFERENCES PRODUIT (CODART) ENABLE
    ) ;
    Et puis pour ENABLE c'est pour la mise en fonction d'une contrainte dans ce cas c'est pour forcer les contraintes NULL au moment de la création de la table.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par lcaya Voir le message
    Pour la table LIGCOM, une et une seule clé primaire est autorisé. Alors est-ce que tu souhaites une clé primaire qui inclut NUMLIG et NUMCOM alors cette contrainte s'écrit comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CONSTRAINT NUMCOM_PK PRIMARY KEY (NUMCOM,NUMLIG) ENABLE,
    et puis il manque une contrainte d'intégrité
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CONSTRAINT FK_NUMCOM_ENTCOM FOREIGN KEY (NUMCOM) 
    REFERENCES ENTCOM (NUMCOM) ENABLE,
    Et donc la création s'écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TABLE LIGCOM 
    (	NUMCOM NUMBER(10,0) NOT NULL ENABLE, 
    	NUMLIG NUMBER(10,0) NOT NULL ENABLE,
    	CODART CHAR(4) NOT NULL ENABLE, 
    	PRIUNI NUMBER(10,0) NOT NULL ENABLE, 
    	QTELIV NUMBER(10,0), 
    	DERLIV DATE NOT NULL ENABLE, 
    	 CONSTRAINT NUMLIG_COM_PK PRIMARY KEY (NUMCOM,NUMLIG) ENABLE,
      CONSTRAINT FK_NUMCOM_ENTCOM FOREIGN KEY (NUMCOM) 
    REFERENCES ENTCOM (NUMCOM) ENABLE,
    	 CONSTRAINT FK_LIGCOM_FOURNIS FOREIGN KEY (CODART)
    	  REFERENCES PRODUIT (CODART) ENABLE
    ) ;
    Et puis pour ENABLE c'est pour la mise en fonction d'une contrainte dans ce cas c'est pour forcer les contraintes NULL au moment de la création de la table.
    Merci !

  6. #6
    Membre averti Avatar de mongilotti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2003
    Messages : 314
    Points : 303
    Points
    303
    Par défaut
    Merci de marquer ce sujet comme RESOLU.

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

Discussions similaires

  1. Erreur de syntaxe dans mon code SQL
    Par Salsaboy60 dans le forum Requêtes
    Réponses: 2
    Dernier message: 18/04/2014, 21h08
  2. Probleme ADO adapter une requete sql pour l'utiliser dans mon code vb6
    Par jacko842 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 22/04/2009, 15h53
  3. [SQL] Erreur dans mon code de back office
    Par alainboiteau dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/06/2007, 11h03
  4. Projet VB v6 : utilisation de requête SQL dans mon code
    Par MITCH31 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 27/10/2005, 15h02
  5. [langage] algo de bissection dans mon code
    Par killy dans le forum Langage
    Réponses: 5
    Dernier message: 19/01/2004, 18h35

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