Créer automatiquement des enrégistrements dans une table avec PL SQL

Créer automatiquement des enrégistrements dans une table avec PL SQL - SQL/NoSQL - Programmation

Marsh Posté le 14-12-2012 à 02:21:02    

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.
Reply

Marsh Posté le 14-12-2012 à 02:21:02   

Reply

Marsh Posté le 14-12-2012 à 09:03:33    

Personne pour m'aider??? SVP

Reply

Marsh Posté le 14-12-2012 à 09:25:57    

Question con, mais après avoir exécuté ton script (qui se contente de créer une procédure stockée), est ce que tu as exécuté cette procédure stockée (c'est ça qui va déclencher l'insertion des données)?
 
Concernant le script en lui même, je ne peux pas trop t'aider. Ça me semble à peu près correct, mais je ne connais pas la syntaxe spécifique à oracle


---------------
Origin / PSN / Steam / Uplay : x1fr - bnet : Fab#2717
Reply

Marsh Posté le 14-12-2012 à 14:52:34    

x1fr a écrit :

Question con, mais après avoir exécuté ton script (qui se contente de créer une procédure stockée), est ce que tu as exécuté cette procédure stockée (c'est ça qui va déclencher l'insertion des données)?
 
Concernant le script en lui même, je ne peux pas trop t'aider. Ça me semble à peu près correct, mais je ne connais pas la syntaxe spécifique à oracle


Merci beaucoup. Tu as entièrement raison. Je débute donc j'ignorais q l'exécution ne se faisait pas au moment de la compilation. Merci J'ai réussi à le faire enfin.


---------------
Oracle me donne des cheveux blancs.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed