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 de tables dans un fichier SQL


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Problème lors de la création de tables dans un fichier SQL
    Bonjour, je suis étudiant dans une école en informatique. J'espère trouver de l'aide ici aujourd'hui car je dois rendre un script aujourd'hui avant 22h avec mon groupe à mon professeur. Nous avons crée un script SQL permettant de creer des tables spécifiques au besoin de notre projet, après avoir fait les modèles conceptuel et physique. Mais nous rencontrons des erreurs du type: "table ou vue inexistante" ou encore "La séquence n'existe pas". Mon script est ci-dessous, pourriez-vous m'aider à trouver l'erreur dans mon script?

    Le script:
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
     
    /* CREATION DES TABLES + CLE PRIMAIRE/ETRANGERE */
     
    DROP TABLE Proprietaire 	cascade constraints                   ;
    DROP TABLE Appartement 		cascade constraints                   ;
    DROP TABLE Locataire 		cascade constraints                   ;
    DROP TABLE Tarif 			cascade constraints                   ;
    DROP TABLE Contrat 			cascade constraints                   ;
     
    DROP SEQUENCE nopropri                                            ;
    DROP SEQUENCE nolocat                                            ;
    DROP SEQUENCE noappt                                            ;
    DROP SEQUENCE nocontrat                                            ;
    DROP SEQUENCE notarif                                            ;
     
    prompt Creation des tables et des sequences en cours ...
     
    /*
    table Proprietaire
    */
    create table Proprietaire
    (
    nopropri	number(4)		CONSTRAINT p1	not null,
    nom			varchar2(30)	CONSTRAINT p2	not null,
    adresse		varchar2(100)	CONSTRAINT p3	not null,
    teleph		varchar2(10)	CONSTRAINT p4	not null,
    mail		varchar2(30)			,
    montcum		number(6)				,
     
    CONSTRAINT pk_nopropri_Proprietaire primary key (nopropri)
    );
    commit;
     
    insert into Proprietaire values(
    	211,'Mario', '38 rue des Cerises','0669696969', 'mario@rouge.fr',2000)	;
    insert into Proprietaire values(
    	212, 'Luigi', '39 rue des Poires','0670707070', 'luigi@vert.fr',7000 )	;
    insert into Proprietaire values(
    	213, 'Rosalina', 'Place de l etoile','0671717171', 'harmonie@bleu.fr',6000)	;
    insert into Proprietaire values(
    	214, 'Daisy', 'Bois de Boulogne','0672727272', 'daisy@orange.fr',5000)	;
    insert into Proprietaire values(
    	215, 'Wario', 'Port Yoneuve','0673737373', 'wario@gros.fr',1000)	;
    commit;
     
    /*table Locataire*/
    create table Locataire
    (
    nolocat		number(4)		CONSTRAINT Locataire_nolocat_nn	not null,
    nom			varchar2(30)	CONSTRAINT Locataire_nom_nn 	not null,
    adresse		varchar2(100)	CONSTRAINT Locataire_adresse_nn	not null,
    teleph		varchar2(10)	CONSTRAINT Locataire_teleph_nn	not null,
    mail		varchar2(30)			,
     
    CONSTRAINT pk_nolocat_Locataire primary key (nolocat)
    );
     
    insert into Locataire values
    (311, 'Link', 'Rue Kokiri','0689898989', 'link@nain.fr');
    insert into Locataire values
    (312, 'Zelda', 'Bois Vermeil','0690909090', 'zelda@chateau.fr');
    insert into Locataire values
    (313, 'Samus', 'Planete Metroid','0691919191', 'samus@bottes.fr');
    insert into Locataire values
    (314, 'Ganon', 'Chateau Bizarre','0692929292', 'ganon@moche.fr');
    insert into Locataire values
    (315, 'Hayrule', 'Place du Roi','0693939393', 'hayrule@serpilliere.fr');
    commit;
     
    /*table Appartement*/
    create table Appartement
    (
    noappt		number(3)		not null,
    adresse		varchar2(100)	not null,
    categorie	varchar2(2)		not null,
    nbpiece		number(2)		not null,
    surface		number(3)		not null,
    garage		varchar2(1)		not null,
    description	varchar2(100)			,
    noproprio	number(4)		not null,
    notarif		number(3)		not null,
     
    CONSTRAINT pk_noappt_Appartement primary key (noappt)
    ) ;
     
    alter table Appartement
    add constraint fk_noproprio_Appartement foreign key (nopropri)
        references Proprietaire (nopropri)
    ;
     
    alter table Appartement
    add constraint fk_notarif_Appartement foreign key (notarif)
        references Tarif (notarif)
    ;
     
    insert into Appartement values
    (411, 'Foret Champignon', 2, 56, 192, 5, 'Un beau parc en jardin', 211, 753);
    insert into Appartement values
    (412, 'Jungle Koko', 3, 7, 12, 3, 'Bof', 212, 123);
    insert into Appartement values
    (413, 'Mont Donkey', 2, 36, 130, 2, 'Incroyable', 213, 456);
    insert into Appartement values
    (414, 'Route Arc en Ciel', 4, 75, 300, 7, 'Moyen', 214, 789);
    insert into Appartement values
    (415, 'Chateau Peach', 1, 49, 10, 1, 'Maison de Retraite', 215, 147);
    commit;
     
    /*table Tarif*/
    create table Tarif
    (
    notarif		number(3)	not null,
    minimum		number(5)	not null,
    maximum		number(5)	not null,
     
    CONSTRAINT pk_notarif_Tarif primary key (notarif)
    );
     
    insert into Tarif values
    (753, 60000, 99999);
    insert into Tarif values
    (123, 10000, 88888);
    insert into Tarif values
    (465, 2000, 22222);
    insert into Tarif values
    (789, 30000, 70000);
    insert into Tarif values
    (147, 5000, 9999);
    commit;
     
    /*table Contrat*/
    create table Contrat
    (
    nocontrat	number(4)	not null,
    datsignat	date			,
    datedeb		date		not null,
    datefin		date			,
    loyernego	number(5)	not null,
    nolocat		number(4)	not null,
    noappt		number(3)	not null,
     
    CONSTRAINT pk_nocontrat_Contrat primary key (nocontrat)
    );
     
     
    alter table Contrat
    add constraint fk_nolocat_Contrat foreign key (nolocat)
        references Locataire (nolocat)
    ;
     
    alter table Contrat
    add constraint fk_noappt_Contrat foreign key (noappt)
        references Appartement (noappt)
    ;
     
    insert into Contrat values
    (4856, 05/06/2014, 03/08/2015, 05/10/2025, 311, 411);
    insert into Contrat values
    (4751, 06/09/2014, 15/12/2014, 10/01/2018, 312, 412);
    insert into Contrat values
    (4686, 01/07/2014, 03/11/2014, 04/06/2016, 313, 413);
    insert into Contrat values
    (4996, 03/01/2014, 07/06/2015, 19/04/2028, 314, 414);
    insert into Contrat values
    (4126, 12/08/2014, 09/10/2014, 04/03/2017, 315, 415);
    commit;
     
    prompt Creation des tables et sequences terminee.

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2002
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 58
    Points : 86
    Points
    86
    Par défaut
    Bonsoir,

    Sans être rentré dans le détail, j'imagine que vos erreurs surviennent lors des instructions DROP. En effet, lorsque l'on tente de drop un objet qui n'existe pas, on obtient une erreur.

    Si vous avez la possibilité d'utiliser du code PL/SQL pour votre exercice, vous pouvez faire une vérification de l'existence d'un objet avant de tenter de le supprimer.

    PS: La balise [CODE] est votre amie!
    PPS: Un log d'erreur est plus parlant qu'une vague description d'erreur
    Tuning and optimization are not a fix to a bad design. A good design is a fix to a bad design.

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Quand vous supprimez des tables et des séquences qui n'ont été jamais crées il est normal d'avoir des messages de type table/séquence inexistante!
    Attention aux nom des zones dans divers tables nopropri vers noproprio (cela ne pose pas de problèmes mais il faut correctement les identifier lors de la définition des clés).

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Vous essayez de créer une contrainte d'intégrité référentielle de la table Appartement vers la table Tarif, alors que la table Tarif n'existe pas encore.

    En plus (ça doit être une faute de frappe) vous faite référence dans la table Appartement au tarif id=456, alors que dans la table tarif il n'existe pas (c'est 465)

    Votre insertion dans la table contrat n'est pas bonne non plus (vous indiquez six valeurs, mais la table contient 7 colonnes...)

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Dajon, j'ai testé en enlevant les DROP mais le problème persiste:


    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
     
    CREATE TABLE  Proprietaire
    (nopropri			number(4)			NOT NULL,
     nom				varchar2(30)		NOT NULL,
     adresse			varchar2(100)		NOT NULL,
     teleph				varchar2(10)		NOT NULL,
     mail				varchar2(30)				,
     montcum			number(6)					,
     
    CONSTRAINT pk_nopropri_Proprietaire PRIMARY KEY (nopropri) );
     
     
    CREATE TABLE Locataire
    (nolocat			number(4)			NOT NULL,
     nom				varchar2(30)		NOT NULL,
     adresse			varchar2(100)		NOT NULL,
     teleph				varchar2(10)		NOT NULL,
     mail				varchar2(30)				,
     
    CONSTRAINT pk_nolocat_Locataire PRIMARY KEY (nolocat)  );
     
     
    CREATE TABLE Appartement
    (noappt				number(3)			NOT NULL,
     adresse			varchar2(100)		NOT NULL,
     categorie			varchar2(2)			NOT NULL,
     nbpiece			number(2)			NOT NULL,
     surface			number(3)			NOT NULL,
     garage				varchar2(1)			NOT NULL,
     description		varchar2(100)				,
     noproprio			number(4)			NOT NULL,
     notarif			number(3)			NOT NULL,
     
    CONSTRAINT pk_noappt_Appartement PRIMARY KEY (noappt) );
     
     
    CREATE TABLE Tarif
    (notarif			number(3)		NOT NULL,
     minimum			number(5)		NOT NULL,
     maximum			number(5)		NOT NULL,
     
    CONSTRAINT pk_notarif_Tarif PRIMARY KEY (notarif)  );
     
     
    CREATE TABLE Contrat
    (nocontrat			number(4)		NOT NULL,
     datsignat			date					,
     datedeb			date			NOT NULL,
     datefin			date					,
     loyernego			number(5)		NOT NULL,
     nolocat			number(4)		NOT NULL,
     noappt				number(3)		NOT NULL,
     
    CONSTRAINT pk_nocontrat_Contrat PRIMARY KEY (nocontrat)  );
     
     
    INSERT INTO Proprietaire values
    (211,'Mario', '38 rue des Cerises','0669696969', 'mario@rouge.fr',2000);
     
    INSERT INTO Proprietaire values
    	(212, 'Luigi', '39 rue des Poires','0670707070', 'luigi@vert.fr',7000 );
    INSERT INTO Proprietaire values
    	(213, 'Rosalina', 'Place de l etoile','0671717171', 'harmonie@bleu.fr',6000);
    INSERT INTO Proprietaire values
    	(214, 'Daisy', 'Bois de Boulogne','0672727272', 'daisy@orange.fr',5000);
    INSERT INTO Proprietaire values
    	(215, 'Wario', 'Port Yoneuve','0673737373', 'wario@gros.fr',1000);
    COMMIT ;
     
     
    INSERT INTO Locataire values
    	(311, 'Link', 'Rue Kokiri','0689898989', 'link@nain.fr');
    INSERT INTO Locataire values
    	(312, 'Zelda', 'Bois Vermeil','0690909090', 'zelda@chateau.fr');
    INSERT INTO Locataire values
    	(313, 'Samus', 'Planete Metroid','0691919191', 'samus@bottes.fr');
    INSERT INTO Locataire values
    	(314, 'Ganon', 'Chateau Bizarre','0692929292', 'ganon@moche.fr');
    INSERT INTO Locataire values
    	(315, 'Hayrule', 'Place du Roi','0693939393', 'hayrule@serpilliere.fr');
    COMMIT ;
     
     
    INSERT INTO Appartement values
    	(411, 'Foret Champignon', 2, 56, 192, 5, 'Un beau parc en jardin', 211, 753);
    INSERT INTO Appartement values
    	(412, 'Jungle Koko', 3, 7, 12, 3, 'Bof', 212, 123);
    INSERT INTO Appartement values
    	(413, 'Mont Donkey', 2, 36, 130, 2, 'Incroyable', 213, 456);
    INSERT INTO Appartement values
    	(414, 'Route Arc en Ciel', 4, 75, 300, 7, 'Moyen', 214, 789);
    INSERT INTO Appartement values
    	(415, 'Chateau Peach', 1, 49, 10, 1, 'Maison de Retraite', 215, 147);
    COMMIT ;
     
     
    INSERT INTO Tarif values
    	(753, 60000, 99999);
    INSERT INTO Tarif values
    	(123, 10000, 88888);
    INSERT INTO Tarif values
    	(465, 2000, 22222);
    INSERT INTO Tarif values
    	(789, 30000, 70000);
    INSERT INTO Tarif values
    	(147, 5000, 9999);
    COMMIT ;
     
     
    INSERT INTO Contrat values
    	(4856, 05/06/2014, 03/08/2015, 05/10/2025, 311, 411);
    INSERT INTO Contrat values
    	(4751, 06/09/2014, 15/12/2014, 10/01/2018, 312, 412);
    INSERT INTO Contrat values
    	(4686, 01/07/2014, 03/11/2014, 04/06/2016, 313, 413);
    INSERT INTO Contrat values
    	(4996, 03/01/2014, 07/06/2015, 19/04/2028, 314, 414);
    INSERT INTO Contrat values
    	(4126, 12/08/2014, 09/10/2014, 04/03/2017, 315, 415);
    COMMIT ;
     
     
    ALTER TABLE Contrat			ADD CONSTRAINT fk_nolocat_Contrat	 	FOREIGN KEY (nolocat)	REFERENCES Locataire (nolocat)
    ;
    ALTER TABLE Contrat			ADD CONSTRAINT fk_noappt_Contrat 		FOREIGN KEY (noappt)   	REFERENCES Appartement (noappt)
    ;
    ALTER TABLE Appartement		ADD CONSTRAINT fk_noproprio_Appartement	FOREIGN KEY (nopropri)	REFERENCES Proprietaire (nopropri)
    ;
    ALTER TABLE Appartement		ADD CONSTRAINT fk_notarif_Appartement 	FOREIGN KEY (notarif)	REFERENCES Tarif (notarif)
    ;
    Et merci pour les réponses.

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

Discussions similaires

  1. [PowerShell] Problème lors de la création d'utilisateurs dans l'AD
    Par Swiss_GaGGy dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 05/03/2013, 12h06
  2. Réponses: 1
    Dernier message: 29/01/2013, 14h44
  3. Erreur lors de création de table dans une BD SQL Server
    Par Klemsy78 dans le forum Administration
    Réponses: 1
    Dernier message: 18/08/2009, 20h32
  4. Réponses: 5
    Dernier message: 25/03/2009, 01h43
  5. exporter données d'une table dans un fichier .sql
    Par pierre2410 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 26/06/2007, 15h29

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