Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1674 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2168030
sagat89
Thanks god.
Posté le 14-12-2012 à 02:21:02  profilanswer
 

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.
mood
Publicité
Posté le 14-12-2012 à 02:21:02  profilanswer
 

n°2168042
sagat89
Thanks god.
Posté le 14-12-2012 à 09:03:33  profilanswer
 

Personne pour m'aider??? SVP

n°2168043
x1fr
Posté le 14-12-2012 à 09:25:57  profilanswer
 

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
n°2168112
sagat89
Thanks god.
Posté le 14-12-2012 à 14:52:34  profilanswer
 

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.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

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

 

Sujets relatifs
Extraire table mysql pour copier avec modif dans une autreCherche à créer un ficher avec 6400 noms (numéro.numéro.jpg)
Afficher une table oracleChercher/créer logiciel pour rechercher l’absence de fichiers
Scanner automatiquement depuis 2 scanners sur 1 ordi (VB.net + WIA)[Resolu]Selection SQL pour QReport
Utilisation d'une variable dans un appel de SQL (avec un "@" )Créer des fichiers numérotés
[VBA] Créer une liste depuis une celluleResolu :Sql : probleme de requete (Subquery returns more than 1 row)
Plus de sujets relatifs à : Créer automatiquement des enrégistrements dans une table avec PL SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR