Bonjour,
Je suis nouveau sur ce forum et j'ai vraiment besoin d'aide. J'ai un TP à rendre et le sujet c'est:
Construire la base de données suivante :
Etudiants (No-etu, Nom-etu, Pnom-etu, Ville, Promotion, Date-nais, Commentaire)
Promotions (No-promo, Libelle-promo, Responsable, Niveau, Commentaire)
Remplir cette base de données à l’aide d’un programme PL/SQL, avec une proportion « contrôlée » d’étudiants dans différentes villes et différentes promotions.
Les proportions visées sont :
- Pour Ville : Dijon (40%), Chenôve ( 25%), Talant (20%), Quetigny (10%), Chevigny (4%), Bressey (1%)
- Pour Promotion : L1 MIE (27%), L1 PC (20%), L2 MIE (15%), L2 PC (10%), L2 MP (1%), L3 Chimie (5%), L3 Info (8%), L3 Elec (2%), L3 Méca (2%), L3 Phys (3%), L3 Math (7%).
J'ai écris un script mais quand j'essaie de le tester avec Select*From Etudians (par exemple) oracle me met "No rows selected".
Voici mon script:
CREATE OR REPLACE PROCEDURE Insertion
AS
val_num number(10);
val_nom varchar(20);
val_pnom varchar(25);
val_ville VARCHAR(40);
val_promo varchar(30);
pct number(3);
BEGIN
for i in 1..100 LOOP
-- Génération du numéro de l'étudiant --
val_num:=i;
DBMS_OUTPUT.PUT_LINE( i ) ;
-- Génération du nom de l'étudiant --
val_nom:=DBMS_RANDOM.STRING('A',10);
DBMS_OUTPUT.PUT_LINE( val_nom ) ;
-- Génération du prénom de l'étudiant --
val_pnom:=DBMS_RANDOM.STRING('B',10);
DBMS_OUTPUT.PUT_LINE( val_pnom ) ;
pct := DBMS_RANDOM.VALUE(0, 100);
IF pct < 4 THEN val_ville := 'Chevigny';
ELSIF pct < 14 THEN val_ville := 'Quetigny';
ELSIF pct < 34 THEN val_ville := 'Talant';
ELSIF pct < 59 THEN val_ville := 'Chenôve';
ELSIF pct < 99 THEN val_ville := 'Dijon';
ELSE val_ville := 'Bressey';
END IF;
pct := DBMS_RANDOM.VALUE(0, 100);
IF pct < 2 then val_promo := 'L3 Elec';
ELSIF pct < 4 then val_promo := 'L3 Meca';
ELSIF pct < 7 then val_promo := 'L3 Phys';
ELSIF pct < 12 then val_promo := 'L3 Chimie';
ELSIF pct < 19 then val_promo := 'L3 Math';
ELSIF pct < 27 then val_promo := 'L3 Info';
ELSIF pct < 37 then val_promo := 'L2 PC';
ELSIF pct < 52 then val_promo := 'L2 MIE';
ELSIF pct < 72 then val_promo := 'L1 PC';
ELSIF pct < 99 then val_promo := 'L1 MIE';
ELSE val_promo := 'L2 MP';
END IF;
INSERT INTO Etudiants (num_etu, nom_etu, pnom_etu, ville, promo, date_nais, commentaire)
VALUES (i, val_nom, val_pnom, val_ville, val_promo, SYSDATE, 'Etudiant ponctuel et régulier en cours.');
END LOOP;
COMMIT;
END;
/
Voici la table Etudiant que j'ai crée:
CREATE TABLE Etudiants (num_etu number(10), nom_etu varchar(20), pnom_etu varchar(25), ville varchar(40), promo varchar(30), date_nais date, commentaire varchar2(150));
Aidez moi je vous en prie.
Merci d'avance
---------------
Oracle me donne des cheveux blancs.