Corrigés des exercices SQL pour Oracle
|
|
|
- Cynthia Roberts
- 10 years ago
- Views:
Transcription
1 Chapitre 1 Corrigés des exercices SQL pour Oracle Création des tables (creparc.sql) CREATE TABLE Segment (indip VARCHAR2(11), nomsegment VARCHAR2(20) CONSTRAINT nn_nomsegment NOT NULL, etage NUMBER(2), CONSTRAINT pk_segment PRIMARY KEY (indip)); CREATE TABLE Salle (nsalle VARCHAR2(7), nomsalle VARCHAR2(20) CONSTRAINT nn_nomsalle NOT NULL, nbposte NUMBER(2), indip VARCHAR2(11), CONSTRAINT pk_salle PRIMARY KEY (nsalle)); CREATE TABLE Poste (nposte VARCHAR2(7), nomposte VARCHAR2(20) CONSTRAINT nn_nomposte NOT NULL, indip VARCHAR2(11), ad VARCHAR2(3), typeposte VARCHAR2(9), nsalle VARCHAR2(7), CONSTRAINT pk_poste PRIMARY KEY (nposte), CONSTRAINT ck_ad CHECK (ad BETWEEN '0' AND '255')); CREATE TABLE Logiciel (nlog VARCHAR2(5), nomlog VARCHAR2(20) CONSTRAINT nn_nomlog NOT NULL, dateach DATE, version VARCHAR2(7), typelog VARCHAR2(9), prix NUMBER(6,2), CONSTRAINT pk_logiciel PRIMARY KEY (nlog), CONSTRAINT ck_prix CHECK (prix >= 0)); CREATE TABLE Installer (nposte VARCHAR2(7), nlog VARCHAR2(5), numins NUMBER(5), dateins DATE DEFAULT SYSDATE, delai INTERVAL DAY(5) TO SECOND(2), CONSTRAINT pk_installer PRIMARY KEY(nPoste,nLog)); CREATE TABLE Types (typelp VARCHAR2(9), nomtype VARCHAR2(20), CONSTRAINT pk_types PRIMARY KEY(typeLP)); Eyrolles Structure des tables (descparc.sql) DESC Segment; DESC Salle; DESC Poste; DESC Logiciel; DESC Installer; DESC Types; Destruction des tables (dropparc.sql) Chapitre 2 DROP TABLE Types; DROP TABLE Installer; DROP TABLE Logiciel; DROP TABLE Poste; DROP TABLE Salle; DROP TABLE Segment; Insertion de données INSERT INTO Segment VALUES (' ','Brin RDC',NULL); INSERT INTO Segment VALUES (' ','Brin 1er étage',null); INSERT INTO Segment VALUES (' ','Brin 2ème étage',null); INSERT INTO Salle VALUES ('s01','salle 1',3,' '); INSERT INTO Salle VALUES ('s02','salle 2',2,' '); INSERT INTO Salle VALUES ('s03','salle 3',2,' '); INSERT INTO Salle VALUES ('s11','salle 11',2,' '); INSERT INTO Salle VALUES ('s12','salle 12',1,' '); INSERT INTO Salle VALUES ('s21','salle 21',2,' '); INSERT INTO Salle VALUES ('s22','salle 22',0,' '); INSERT INTO Salle VALUES ('s23','salle 23',0,' '); INSERT INTO Poste VALUES ('p1','poste 1',' ','01','TX','s01'); INSERT INTO Poste VALUES ('p2','poste 2',' ','02','UNIX','s01'); INSERT INTO Poste VALUES ('p3','poste 3',' ','03','TX','s01'); INSERT INTO Poste VALUES ('p4','poste 4',' ','04','PCWS','s02'); INSERT INTO Poste VALUES ('p5','poste 5',' ','05','PCWS','s02'); INSERT INTO Poste VALUES ('p6','poste 6',' ','06','UNIX','s03'); INSERT INTO Poste VALUES ('p7','poste 7',' ','07','TX','s03'); INSERT INTO Poste VALUES ('p8','poste 8',' ','01','UNIX','s11'); INSERT INTO Poste VALUES ('p9','poste 9',' ','02','TX','s11'); INSERT INTO Poste VALUES ('p10','poste 10',' ','03','UNIX','s12'); INSERT INTO Poste VALUES ('p11','poste 11',' ','01','PCNT','s21'); INSERT INTO Poste VALUES ('p12','poste 12',' ','02','PCWS','s21'); Eyrolles
2 INSERT INTO Logiciel VALUES ('log1','oracle 6',' ','6.2','UNIX',3000); INSERT INTO Logiciel VALUES ('log2','oracle 8',' ','8i','UNIX',5600); INSERT INTO Logiciel VALUES ('log3','sql Server',' ','7','PCNT',3000); INSERT INTO Logiciel VALUES ('log4','front Page',' ','5','PCWS',500); INSERT INTO Logiciel VALUES ('log5','windev',' ','5','pcws',750); INSERT INTO Logiciel VALUES ('log6','sql*net',null,'2.0','unix',500); INSERT INTO Logiciel VALUES ('log7','i. I. S.',' ','2','PCNT',900); INSERT INTO Logiciel VALUES ('log8','dreamweaver',' ','2.0','BeOS',1400); INSERT INTO Types VALUES ('TX', 'Terminal X-Window'); INSERT INTO Types VALUES ('UNIX','Système Unix'); INSERT INTO Types VALUES ('PCNT','PC Windows NT'); INSERT INTO Types VALUES ('PCWS','PC Windows'); INSERT INTO Types VALUES ('NC', 'Network Computer'); Gestion d une séquence CREATE SEQUENCE sequenceins INCREMENT BY 1 START WITH 1 MAXVALUE NOCYCLE; ('p2', 'log1', sequenceins.nextval,' ',null); ('p2', 'log2', sequenceins.nextval,' ',null); ('p4', 'log5', sequenceins.nextval,null,null); ('p6', 'log6', sequenceins.nextval,' ',null); ('p6', 'log1', sequenceins.nextval,' ',null); ('p8', 'log2', sequenceins.nextval,' ',null); ('p8', 'log6', sequenceins.nextval,' ',null); ('p11','log3', sequenceins.nextval,' ',null); ('p12','log4', sequenceins.nextval,' ',null); ('p11','log7', sequenceins.nextval,' ',null); ('p7', 'log7', sequenceins.nextval,' ',null); Modification de données UPDATE Segment SET etage=0 WHERE indip = ' '; UPDATE Segment SET etage=1 WHERE indip = ' '; UPDATE Segment SET etage=2 WHERE indip = ' '; Eyrolles UPDATE Logiciel SET prix = prix*0.9 WHERE typelog = 'PCNT'; Chapitre 3 Ajout de colonnes ALTER TABLE Segment ADD (nbsalle NUMBER(2), nbposte NUMBER(2)); ALTER TABLE Logiciel ADD nbinstall NUMBER(2); ALTER TABLE Poste ADD nblog NUMBER(2); Modification de colonnes ALTER TABLE Salle MODIFY nomsalle VARCHAR2(30); ALTER TABLE Segment MODIFY nomsegment VARCHAR(15); -- +long 'Brin 2ème étage' : 15 caractères -- tentative ALTER TABLE Segment MODIFY nomsegment VARCHAR(14); Ajout de contraintes ALTER TABLE Poste ADD CONSTRAINT fk_poste_indip_segment FOREIGN KEY(indIP) REFERENCES Segment(indIP); ALTER TABLE Poste ADD CONSTRAINT fk_poste_nsalle_salle FOREIGN KEY(nSalle) REFERENCES Salle(nSalle); ALTER TABLE Poste ADD CONSTRAINT fk_poste_typeposte_types FOREIGN KEY(typePoste) REFERENCES Types(typeLP); ALTER TABLE Installer ADD CONSTRAINT fk_installer_nposte_poste FOREIGN KEY(nPoste) REFERENCES Poste(nPoste); ALTER TABLE Installer ADD CONSTRAINT fk_installer_nlog_logiciel FOREIGN KEY(nLog) REFERENCES Logiciel(nLog); Le script de destruction des tables devient : DROP TABLE Installer; DROP TABLE Logiciel; DROP TABLE Poste; DROP TABLE Types; DROP TABLE Salle; DROP TABLE Segment; Eyrolles
3 Traitements des rejets CREATE TABLE Rejets (ligne ROWID, propriétaire VARCHAR2(30), nomtable VARCHAR2(30), contrainte VARCHAR2(30)); ALTER TABLE Logiciel ADD CONSTRAINT fk_logiciel_typelog_types FOREIGN KEY(typeLog) REFERENCES Types(typeLP) EXCEPTIONS INTO Rejets; ALTER TABLE Salle ADD CONSTRAINT fk_salle_indip_segment FOREIGN KEY(indIP) REFERENCES Segment(indIP) EXCEPTIONS INTO Rejets; Résolution des rejets en : supprimant les enregistrements de la table Rejets. DELETE FROM Rejets; supprimant les enregistrements de la table Salle qui ne respectent pas la contrainte. DELETE FROM Salle WHERE indip NOT IN (SELECT indip FROM Segment); ajoutant le type de logiciel ( BeOS, Système Be ) INSERT INTO Types VALUES ('BeOS','Système Be'); L ajout des deux contraintes de clé étrangère ne envoie plus d erreur et la table Rejets reste vide. Chapitre 4 Création dynamique de tables CREATE TABLE Softs (nomsoft, Version) AS SELECT nomlog, Version FROM Logiciel; CREATE TABLE PCSeuls (np, nomp, seg, ad, typep,lieu) AS SELECT nposte, nomposte, IndIP, ad, typeposte, nsalle FROM Poste WHERE typeposte = 'PCNT' OR typeposte = 'PCWS'; Requêtes mono-table --1 SELECT nposte, typeposte FROM Poste WHERE nposte = 'p8'; --2 SELECT nomlog FROM Logiciel WHERE typelog = 'UNIX'; --3 SELECT nomposte, indip, ad, nsalle FROM Poste WHERE typeposte = 'UNIX' OR typeposte = 'PCWS'; --4 Eyrolles SELECT nomposte, indip, ad, nsalle FROM Poste WHERE (typeposte = 'UNIX' OR typeposte = 'PCWS') AND indip = ' ' ORDER BY nsalle DESC; --5 SELECT nlog FROM Installer WHERE nposte = 'p6'; --6 SELECT nposte FROM Installer WHERE nlog = 'log1'; --7 SELECT nomposte, indip '.' ad FROM Poste WHERE typeposte = 'TX'; Fonctions et groupements --8 SELECT nposte, COUNT(nLog) FROM installer GROUP BY (nposte); --9 SELECT nsalle, COUNT(nPoste) FROM Poste GROUP BY (nsalle) ORDER BY 2; --10 SELECT nlog, COUNT(nPoste) FROM Installer GROUP BY (nlog); --11 SELECT AVG(prix) FROM Logiciel WHERE typelog = 'UNIX'; --12 SELECT MAX(dateAch) FROM Logiciel; --13 SELECT nposte FROM Installer GROUP BY nposte HAVING COUNT(nLog)=2; --14 SELECT COUNT(*) FROM (SELECT nposte FROM Installer GROUP BY nposte HAVING COUNT(nLog)=2); Requêtes multi-tables Opérateurs ensemblistes --15 SELECT typelp FROM Types MINUS SELECT DISTINCT typeposte FROM Poste; --16 SELECT typelog FROM Logiciel INTERSECT SELECT typeposte FROM Poste; --17 SELECT DISTINCT typeposte FROM Poste MINUS Eyrolles
4 SELECT DISTINCT typelog FROM Logiciel; Jointures procédurales --18 SELECT indip '.' ad FROM Poste WHERE nposte IN (SELECT nposte FROM Installer WHERE nlog = 'log6'); --19 SELECT indip '.' ad FROM Poste WHERE nposte IN (SELECT nposte FROM Installer WHERE nlog = (SELECT nlog FROM Logiciel WHERE nomlog = 'Oracle 8')); --20 SELECT nomsegment FROM Segment WHERE indip IN (SELECT indip FROM Poste WHERE typeposte = 'TX' GROUP BY indip HAVING COUNT(*)=3); --21 SELECT nomsalle FROM Salle WHERE nsalle IN (SELECT nsalle FROM Poste WHERE nposte IN (SELECT nposte FROM Installer WHERE nlog = (SELECT nlog FROM Logiciel WHERE nomlog = 'Oracle 6'))); --22 SELECT nomlog FROM Logiciel WHERE dateach = (SELECT MAX(dateAch) FROM Logiciel) ; Jointures relationnelles --23 SELECT p.indip '.' p.ad FROM Poste p, Installer i WHERE p.nposte = i.nposte AND i.nlog = 'log6'; --24 SELECT p.indip '.' p.ad FROM Poste p, Installer i, Logiciel l WHERE p.nposte = i.nposte AND l.nlog = i.nlog AND l.nomlog = 'Oracle 8'; --25 SELECT s.nomsegment FROM Segment s, Poste p Eyrolles WHERE s.indip = p.indip AND p.typeposte = 'TX' GROUP BY s.nomsegment HAVING COUNT(*)=3; --26 SELECT s.nomsalle FROM Salle s, Poste p, Installer i, Logiciel l WHERE s.nsalle = p.nsalle AND p.nposte = i.nposte AND i.nlog = l.nlog AND l.nomlog = 'Oracle 6'; --27 SELECT sg.nomsegment, s.nsalle, p.indip '.' p.ad, l.nomlog, i.dateins FROM segment sg, Salle s, Poste p, Logiciel l, Installer i WHERE s.nsalle = p.nsalle AND s.indip = sg.indip AND p.nposte = i.nposte AND i.nlog = l.nlog ORDER BY 1,2,3; Jointures SQL SELECT indip '.' ad FROM Poste NATURAL JOIN Installer WHERE nlog = 'log6'; --29 SELECT indip '.' ad FROM Poste NATURAL JOIN Installer NATURAL JOIN Logiciel WHERE nomlog = 'Oracle 8'; --30 SELECT nomsegment FROM Segment JOIN Poste USING(indIP) WHERE typeposte = 'TX' GROUP BY nomsegment HAVING COUNT(*)=3; --31 SELECT nomsalle FROM Salle NATURAL JOIN Poste NATURAL JOIN Installer NATURAL JOIN Logiciel WHERE nomlog = 'Oracle 6'; Modifications synchronisées INSERT INTO installer VALUES ('p2','log6', sequenceins.nextval,null,null); INSERT INTO installer VALUES ('p8','log1', sequenceins.nextval,null,null); INSERT INTO installer VALUES ('p10','log1', sequenceins.nextval,null,null); Eyrolles
5 UPDATE Segment seg SET seg.nbsalle = (SELECT COUNT(*) FROM Salle sal WHERE seg.indip=sal.indip); UPDATE Segment seg SET seg.nbposte = (SELECT COUNT(*) FROM Poste pos WHERE seg.indip=pos.indip); UPDATE Logiciel l SET l.nbinstall = (SELECT COUNT(*) FROM Installer i WHERE l.nlog = i.nlog); UPDATE Poste p SET p.nblog = (SELECT COUNT(*) FROM Installer i WHERE p.nposte = i.nposte); Opérateurs existentiels Sous-interrogation synchronisé --32 SELECT nomposte FROM Poste p WHERE EXISTS (SELECT i1.nlog FROM Installer i1 WHERE i1.nposte = p.nposte INTERSECT SELECT i2.nlog FROM Installer i2 WHERE i2.nposte = 'p6') AND NOT (nposte ='p6'); Divisions L ensemble de référence est noté A dans les requêtes suivantes. Il est constitué des logiciels d un poste donné SELECT nomposte FROM Poste p WHERE NOT EXISTS (SELECT i2.nlog A FROM Installer i2 WHERE i2.nposte = 'p6' MINUS SELECT i1.nlog FROM Installer i1 WHERE i1.nposte = p.nposte) AND NOT (nposte ='p6'); --34 SELECT nomposte FROM Poste p WHERE NOT EXISTS (SELECT i2.nlog FROM Installer i2 WHERE i2.nposte = 'p2' MINUS A-B SELECT i1.nlog FROM Installer i1 WHERE i1.nposte = p.nposte) AND NOT EXISTS (SELECT i1.nlog FROM Installer i1 WHERE i1.nposte = p.nposte MINUS B-A SELECT i2.nlog FROM Installer i2 WHERE i2.nposte = 'p2') AND NOT (nposte ='p2'); Eyrolles Chapitre 5 Vues mono-table Vues sans contraintes CREATE VIEW LogicielsUnix AS SELECT * FROM Logiciel WHERE typelog = 'UNIX'; CREATE VIEW Poste0 (npos0, nomposte0, nsalle0, TypePoste0, indip, ad0) AS SELECT nposte, nomposte, nsalle, typeposte, indip, ad FROM Poste WHERE indip IN (SELECT indip FROM Segment WHERE etage = 0); INSERT INTO Poste0 VALUES ('p15','bidon15', 's01','unix',' ','20'); INSERT INTO Poste0 VALUES ('p16', 'Bidon16','s21','UNIX',' ','20'); Les deux postes sont présents dans la table Poste, mais seul le poste p15 est extrait de la vue Poste0! DELETE FROM Poste WHERE nposte IN ('p15','p16'); Résoudre une requête complexe L expression nbposte*100 sert à la définition de la colonne prixlocation. CREATE VIEW SallePrix (nsalle, nomsalle, nbposte, prixlocation) AS SELECT nsalle, nomsalle, nbposte, nbposte*100 FROM Salle; SELECT * FROM SallePrix WHERE prixlocation > 150; ALTER TABLE Types ADD tarif NUMBER(3); UPDATE Types SET tarif=50 WHERE typelp ='TX'; UPDATE Types SET tarif=100 WHERE typelp ='PCWS'; UPDATE Types SET tarif=120 WHERE typelp ='PCNT'; UPDATE Types SET tarif=200 WHERE typelp ='UNIX'; UPDATE Types SET tarif=80 WHERE typelp ='NC'; UPDATE Types SET tarif=400 WHERE typelp ='BeOS'; La particularité de la vue SalleIntermédiaire réside dans la condition de regroupement (3 colonnes sont nécessaires car 3 colonnes doivent être extraites par SELECT). CREATE VIEW SalleIntermédiaire(nSalle, typeposte, nombre, tarif) AS SELECT p.nsalle, p.typeposte, COUNT(p.nPoste), t.tarif FROM Poste p, Types t Eyrolles
6 WHERE p.typeposte = t.typelp GROUP BY p.nsalle, p.typeposte, t.tarif; La vue SallePrixTotal est définie à partir de la vue SalleIntermédiaire en groupant sur le numéro de salle et en faisant la somme du produit des tarifs par le nombre de poste de chaque type. CREATE VIEW SallePrixTotal(nSalle, PrixRéel) AS SELECT nsalle, SUM(nombre*tarif) FROM SalleIntermédiaire GROUP BY nsalle; SELECT * FROM SallePrixTotal WHERE PrixRéel = (SELECT MIN(PrixRéel) FROM SallePrixTotal); Vues avec contraintes CREATE OR REPLACE VIEW Poste0 (npos0, nomposte0, nsalle0, TypePoste0, indip, ad0) AS SELECT nposte, nomposte, nsalle, typeposte, indip, ad FROM Poste WHERE indip IN (SELECT indip FROM Segment WHERE etage = 0) WITH CHECK OPTION CONSTRAINT wco_poste0; Insertion désormais impossible du fait de la contrainte de vérification. INSERT INTO Poste0 VALUES ('p16','bidon15', 's21','unix',' ','20'); CREATE OR REPLACE VIEW Installer0 (nposte, nlog, num, dateins) AS SELECT nposte, nlog, numins, dateins FROM Installer WHERE nlog NOT IN (SELECT nlog FROM Logiciel WHERE typelog = 'PCNT') AND nposte IN (SELECT nposte FROM Poste WHERE indip IN (SELECT indip FROM Segment WHERE etage=0 )) WITH CHECK OPTION CONSTRAINT wco_installer0; Insertions impossibles du fait de la contrainte de vérification. INSERT INTO Installer0 VALUES('p11','log7',sequenceIns.NEXTVAL,SYSDATE); INSERT INTO Installer0 VALUES('p1','log7',sequenceIns.NEXTVAL, SYSDATE); Insertion valable. INSERT INTO Installer0 VALUES('p6','log2',sequenceIns.NEXTVAL, SYSDATE); Vue multi-tables CREATE VIEW SallePoste (nomsalle, nomposte, adrip, nomtypeposte) AS SELECT s.nomsalle, p.nomposte, p.indip '.' p.ad, t.nomtype FROM Salle s, Poste p, Types t WHERE s.nsalle = p.nsalle AND p.typeposte = t.typelp; Eyrolles Mises à jour conditionnées Les tables initiales sont les suivantes. CREATE TABLE Primes (brevet CHAR(6), nom CHAR(20), paye NUMBER(7,2), compa CHAR(4)); CREATE TABLE Vols (brevet CHAR(6), datevol DATE, bonus NUMBER(3)); INSERT INTO Primes VALUES ('PL-1', 'Aurélia Ente', 100, 'AF'); INSERT INTO Primes VALUES ('PL-2', 'Agnès Bidal', 100, 'AF'); INSERT INTO Primes VALUES ('PL-3', 'Sylvie Payrissat', 0, 'SING'); INSERT INTO Vols VALUES ('PL-1', SYSDATE-15, 50); INSERT INTO Vols VALUES ('PL-1', SYSDATE-10, 50); INSERT INTO Vols VALUES ('PL-1', SYSDATE, 50); INSERT INTO Vols VALUES ('PL-3', SYSDATE-5, 40); INSERT INTO Vols VALUES ('PL-3', SYSDATE, 40); INSERT INTO Vols VALUES ('PL-4', SYSDATE, 20); La vue mono-table à définir doit contenir la somme des bonus pour chaque pilote car MERGE ne peut pas mettre à jour plusieurs fois le même enregistrement de la table cible en une seule instruction. CREATE VIEW v_vols(brevet, sommebonus) AS SELECT brevet, SUM(bonus) FROM Vols GROUP BY brevet; La fusion utilise la vue qui ne contient aucune redondance au niveau des codes brevet. L ajout du bonus à la table prime prend donc en compte tous les bonus que le pilote a eu. MERGE INTO Primes p USING (SELECT brevet, sommebonus FROM v_vols) v ON (p.brevet = v.brevet) WHEN MATCHED THEN UPDATE SET p.paye = p.paye + v.sommebonus WHEN NOT MATCHED THEN INSERT (brevet, paye) VALUES (v.brevet, v.sommebonus); Chapitre 6 Tableaux et structures de contrôle L algorithme de la fusion est un classique du genre : 3 tant que qui s enchaînent. Le premier traite simultanément les 2 tableaux en remplissant le dernier jusqu à ce qu un des tableau soit traité en totalités. Il reste ensuite à remplir le tableau résultat avec la fin du tableau restant à parcourir (par les deux derniers tant que). SET SERVEROUTPUT ON DECLARE TYPE nomcomp_tytab IS TABLE OF VARCHAR2(15) INDEX BY BINARY_INTEGER; -- tableaux tab_compfrance nomcomp_tytab; Eyrolles
7 tab_compmonde nomcomp_tytab; tab_résultat nomcomp_tytab; v_indicefrance NUMBER(1) := 1; v_indicemonde NUMBER(1) := 1; v_indicerésultat NUMBER(2) := 1; tab_compfrance(1) := 'AERIS'; tab_compfrance(2) := 'Air France'; tab_compfrance(3) := 'Air Littoral'; tab_compfrance(4) := 'Regional'; tab_compmonde(1) := 'ALITALIA'; tab_compmonde(2) := 'Quantas'; tab_compmonde(3) := 'SABENA'; -- parcours des deux tableaux en parallèle (stop à la fin d un des 2) WHILE (tab_compfrance.exists(v_indicefrance) AND tab_compmonde.exists(v_indicemonde)) LOOP IF tab_compfrance(v_indicefrance) > tab_compmonde(v_indicemonde)then tab_résultat(v_indicerésultat) := tab_compmonde(v_indicemonde); v_indicemonde := v_indicemonde + 1; tab_résultat(v_indicerésultat) := tab_compfrance(v_indicefrance); v_indicefrance := v_indicefrance + 1; v_indicerésultat := v_indicerésultat + 1; -- Traitement de la fin du tableau qui reste à parcourir WHILE (tab_compfrance.exists(v_indicefrance)) LOOP tab_résultat(v_indicerésultat) := tab_compfrance(v_indicefrance); v_indicerésultat := v_indicerésultat + 1; v_indicefrance := v_indicefrance + 1; WHILE (tab_compmonde.exists(v_indicemonde)) LOOP tab_résultat(v_indicerésultat) := tab_compmonde(v_indicemonde); v_indicerésultat := v_indicerésultat + 1; v_indicemonde := v_indicemonde + 1; -- Affichage des résultats DBMS_OUTPUT.PUT_LINE ('Nombre éléments de tab_résultat ' tab_résultat.count); FOR v_entier IN 1..tab_résultat.COUNT LOOP DBMS_OUTPUT.PUT_LINE ('tab_résultat(' v_entier ') : ' tab_résultat(v_entier)); Bloc PLSQL et variables %TYPE SET SERVEROUTPUT ON DECLARE v_sequenceinsmax Installer.numIns%TYPE; v_nposte Installer.nPoste%TYPE; v_nlog Installer.nLog%TYPE; v_dateins Installer.dateIns%TYPE; v_nsalle Poste.nSalle%TYPE; v_nomlog Logiciel.nomLog%TYPE; -- Extraction de la dernière extraction SELECT numins, nposte, nlog, dateins INTO v_sequenceinsmax, v_nposte, v_nlog, v_dateins FROM Installer WHERE numins = (SELECT MAX(numIns) FROM Installer); -- Extraction du numéro de la salle du poste saisi SELECT nsalle INTO v_nsalle FROM Poste WHERE nposte = v_nposte; -- Extraction du nom du logiciel de numéro saisi SELECT nomlog INTO v_nomlog FROM Logiciel WHERE nlog = v_nlog; -- état de sortie DBMS_OUTPUT.PUT_LINE('Dernière installation en salle : ' v_nsalle); DBMS_OUTPUT.PUT_LINE(' '); DBMS_OUTPUT.PUT_LINE('Poste : ' v_nposte ' Logiciel : ' v_nomlog ' en date du ' v_dateins); Variables de substitution et globales -- Saisies au clavier ACCEPT s_nsalle PROMPT 'Numéro de Salle : ' ACCEPT s_typeposte PROMPT 'Type de poste : ' VARIABLE g_nbposte NUMBER; VARIABLE g_nbinstall NUMBER; -- Extraction du nombre de postes SELECT COUNT(*) INTO :g_nbposte FROM Poste WHERE nsalle = '&s_nsalle' AND typeposte = '&s_typeposte'; -- Extraction du nombre d installations SELECT COUNT(*)INTO :g_nbinstall FROM Installer WHERE nposte IN (SELECT nposte FROM Poste WHERE nsalle = '&s_nsalle' AND typeposte = '&s_typeposte'); -- Affichage des résultats PRINT :g_nbposte; PRINT :g_nbinstall; Eyrolles Eyrolles
8 Transaction Chapitre 7 Curseur SET ECHO OFF SET SERVEROUTPUT ON SET VERIFY OFF -- Saisies au clavier ACCEPT s_nlog PROMPT 'Numéro de logiciel : ' ACCEPT s_nomlog PROMPT 'Nom du logiciel : ' ACCEPT s_version PROMPT 'Version du logiciel : ' ACCEPT s_typelog PROMPT 'Type du logiciel : ' ACCEPT s_prix PROMPT 'Prix du logiciel (en euros) : ' DECLARE v_nposte Poste.nPoste%TYPE := 'p7'; v_dateachat DATE; -- Insère dans Logiciel INSERT INTO Logiciel VALUES ('&s_nlog','&s_nomlog',sysdate,'&s_version','&s_typelog','&s_prix',0); DBMS_OUTPUT.PUT_LINE('Logiciel inséré dans la base'); -- Extraction de la date de l'achat SELECT dateach INTO v_dateachat FROM Logiciel WHERE nlog = '&s_nlog'; DBMS_OUTPUT.PUT_LINE ('Date achat : ' TO_CHAR(v_dateAchat,'DD-MM-YYYY HH24:MI:SS')); -- On attend 5 petites secondes DBMS_LOCK.SLEEP(5); DBMS_OUTPUT.PUT_LINE ('Date installation : ' TO_CHAR(SYSDATE,'DD-MM-YYYY HH24:MI:SS')); -- Insertion dans Installer INSERT INTO Installer VALUES (v_nposte, '&s_nlog', sequenceins.nextval, SYSDATE, NUMTODSINTERVAL(SYSDATE-v_dateAchat,'SECOND')); DBMS_OUTPUT.PUT_LINE('Logiciel installé sur le poste'); COMMIT; -- Affichage des tables modifiées SELECT * FROM Logiciel; SELECT * FROM Installer; CREATE OR REPLACE PROCEDURE calcultemps IS CURSOR curseur IS SELECT l.nomlog,p.nomposte,l.dateach,i.dateins,i.nlog, i.nposte FROM Installer i, Logiciel l, Poste p Eyrolles WHERE i.nposte = p.nposte AND i.nlog = l.nlog; atte NUMBER(4); FOR enreg IN curseur LOOP IF enreg.dateins IS NULL THEN DBMS_OUTPUT.PUT_LINE('Pas de date d''installation pour le logiciel ' enreg.nomlog ' sur ' enreg.nomposte); IF enreg.dateach IS NULL THEN DBMS_OUTPUT.PUT_LINE('Date d''achat inconnue pour le logiciel ' enreg.nomlog ' sur ' enreg.nomposte); atte := enreg.dateins - enreg.dateach; IF atte < 0 THEN DBMS_OUTPUT.PUT_LINE('Logiciel ' enreg.nomlog ' installé sur ' enreg.nomposte ' ' -atte ' jour(s) avant d''être acheté!'); IF atte = 0 THEN DBMS_OUTPUT.PUT_LINE('Logiciel ' enreg.nomlog ' sur ' enreg.nomposte ' acheté et installé le même jour!'); DBMS_OUTPUT.PUT_LINE('Logiciel ' enreg.nomlog ' sur ' enreg.nomposte ', attente ' atte ' jour(s).'); UPDATE Installer SET delai = NUMTODSINTERVAL(enreg.dateIns - enreg.dateach,'day') WHERE nposte = enreg.nposte AND nlog = enreg.nlog; COMMIT; END calcultemps; Transaction CREATE OR REPLACE PROCEDURE installlogseg (param1 IN VARCHAR2, param2 IN VARCHAR2, param3 IN VARCHAR2, param4 IN DATE, param5 IN VARCHAR2, param6 IN VARCHAR2, param7 IN NUMBER) IS CURSOR curseur IS SELECT p.nomposte, p.nposte, s.nomsalle FROM Poste p, Salle s WHERE p.indip = param1 AND p.typeposte = param6 AND p.nsalle = s.nsalle; INSERT INTO Logiciel VALUES (param2,param3,param4,param5,param6,param7,0); DBMS_OUTPUT.PUT_LINE(param3 ' stocké dans la table Logiciel'); FOR enreg IN curseur LOOP INSERT INTO Installer VALUES(enreg.nPoste, param2, sequenceins.nextval,sysdate, Eyrolles
9 NUMTODSINTERVAL(SYSDATE-param4,'DAY')); DBMS_OUTPUT.PUT_LINE('Installation sur ' enreg.nomposte ' dans ' enreg.nomsalle); COMMIT; END installlogseg ; Exceptions CREATE OR REPLACE PROCEDURE installlogseg (param1 IN VARCHAR2, param2 IN VARCHAR2, param3 IN VARCHAR2, param4 IN DATE, param5 IN VARCHAR2, param6 IN VARCHAR2, param7 IN NUMBER) IS CURSOR curseur IS SELECT p.nomposte, p.nposte, s.nomsalle FROM Poste p, Salle s WHERE p.indip = param1 AND p.typeposte = param6 AND p.nsalle = s.nsalle; p_nomsegment Segment.nomSegment%TYPE; toutsepassebien BOOLEAN := TRUE; date_fausse EXCEPTION; pas_install_possible EXCEPTION; enfant_sans_parent EXCEPTION; PRAGMA EXCEPTION_INIT(enfant_sans_parent,-2291); nbrinstall NUMBER := 0; SELECT nomsegment INTO p_nomsegment FROM Segment WHERE indip = param1 ; EXCEPTION WHEN NO_DATA_FOUND THEN toutsepassebien := FALSE; DBMS_OUTPUT.PUT_LINE('Segment inconnu!'); WHEN OTHERS THEN toutsepassebien := FALSE; DBMS_OUTPUT.PUT_LINE('Erreur d''oracle ' SQLERRM '(' SQLCODE ')'); IF param4 > SYSDATE THEN RAISE date_fausse; IF toutsepassebien THEN INSERT INTO Logiciel VALUES (param2,param3,param4,param5,param6,param7,0); DBMS_OUTPUT.PUT_LINE(param3 ' stocké dans la table Logiciel'); FOR enreg IN curseur LOOP nbrinstall := nbrinstall + 1; (enreg.nposte, param2, sequenceins.nextval,sysdate, NUMTODSINTERVAL(SYSDATE-param4,'DAY')); DBMS_OUTPUT.PUT_LINE('Installation sur ' enreg.nomposte ' dans ' enreg.nomsalle); COMMIT; Eyrolles IF nbrinstall = 0 THEN RAISE pas_install_possible; DBMS_OUTPUT.PUT_LINE(nbrInstall ' installations ont été faites.'); EXCEPTION WHEN enfant_sans_parent THEN DBMS_OUTPUT.PUT_LINE('Type de logiciel inconnu!'); WHEN DUP_VAL_ON_INDEX THEN DBMS_OUTPUT.PUT_LINE('Logiciel déja présent!'); WHEN date_fausse THEN DBMS_OUTPUT.PUT_LINE('Date d''achat supérieure à celle du jour!'); WHEN pas_install_possible THEN DBMS_OUTPUT.PUT_LINE('Pas de poste de ce type sur le segment'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Erreur d''oracle ' SQLERRM '(' SQLCODE ')'); END installlogseg ; Paquetage Déclencheurs CREATE OR REPLACE PACKAGE paquetageparcinfo AS PROCEDURE installlogseg (param1 IN VARCHAR2, param2 IN VARCHAR2, param3 IN VARCHAR2, param4 IN DATE, param5 IN VARCHAR2, param6 IN VARCHAR2, param7 IN NUMBER); PROCEDURE calcultemps; END paquetageparcinfo; CREATE OR REPLACE PACKAGE BODY paquetageparcinfo AS PROCEDURE calcultemps IS END calcultemps; PROCEDURE installlogseg (param1 IN VARCHAR2, param2 IN VARCHAR2, param3 IN VARCHAR2, param4 IN DATE, param5 IN VARCHAR2, param6 IN VARCHAR2, param7 IN NUMBER) IS END installlogseg ; END paquetageparcinfo; Mises à jour de colonnes CREATE OR REPLACE TRIGGER Trig_Après_DI_Installer AFTER INSERT OR DELETE ON Installer Eyrolles
10 FOR EACH ROW IF DELETING THEN UPDATE Poste SET nblog=nblog - 1 WHERE nposte = :OLD.nPoste; UPDATE Logiciel SET nbinstall = nbinstall - 1 WHERE nlog = :OLD.nLog; IF INSERTING THEN UPDATE Poste SET nblog = nblog + 1 WHERE nposte = :NEW.nPoste; UPDATE Logiciel SET nbinstall = nbinstall + 1 WHERE nlog = :NEW.nLog; CREATE OR REPLACE TRIGGER Trig_Après_DI_Poste AFTER INSERT OR DELETE ON Poste FOR EACH ROW IF DELETING THEN UPDATE Salle SET nbposte = nbposte - 1 WHERE nsalle = :OLD.nSalle; UPDATE Salle SET nbposte = nbposte + 1 WHERE nsalle = :NEW.nSalle; CREATE OR REPLACE TRIGGER Trig_Après_U_Salle AFTER UPDATE OF nbposte ON Salle FOR EACH ROW DECLARE differ NUMBER; differ := :NEW.nbPoste - :OLD.nbPoste; UPDATE Segment SET nbposte = nbposte + differ WHERE indip = :NEW.indIP; Programmation de contraintes CREATE OR REPLACE TRIGGER Trig_Avant_UI_Installer BEFORE INSERT OR UPDATE OF nposte, nlog ON installer FOR EACH ROW DECLARE type_log Types.typeLP%TYPE; type_pos Types.typeLP%TYPE; date_achat DATE; SELECT typelog, dateach INTO type_log,date_achat FROM logiciel WHERE :NEW.nLog = nlog; SELECT typeposte INTO type_pos FROM Poste WHERE :NEW.nPoste = nposte; Eyrolles IF type_log!= type_pos THEN RAISE_APPLICATION_ERROR(-20111,'Poste : ' type_pos ' différent du logiciel : ' type_log); IF :NEW.dateIns IS NOT NULL THEN IF :NEW.dateIns < date_achat THEN RAISE_APPLICATION_ERROR(-20112,'Installation (' :NEW.dateIns ') inférieure a la date d''achat (' date_achat ')'); Chapitre 9 (JDBC) Curseur statique import java.util.arraylist; public class ExoJDBC { public static Connection cx; public static ResultSet rs, rs2; public static Statement etat; public static Statement etatmodifiable; public static CallableStatement cetat; public static ArrayList getsalles() { ArrayList tableaurésultat = new ArrayList(); try { etat = cx.createstatement(); rs = etat.executequery("select * FROM Salle"); String [] ligne = null; while (rs.next()) { ligne = new String[4]; ligne[0] = rs.getstring(1); ligne[1] = rs.getstring(2); ligne[2] = (new Integer(rs.getInt(3))).toString(); ligne[3] = rs.getstring(4); tableaurésultat.add(ligne); } rs.close(); etat.close(); } catch (SQLException ex) { while (ex!= null) { System.out.println ("Statut SQL : "+ex.getsqlstate()); System.out.println ("Message : "+ex.getmessage()); System.out.println ("Code erreur : "+ex.geterrorcode()); ex = ex.getnextexception(); } } return tableaurésultat; } public static void main(string args[]) {try { DriverManager.registerDriver (new oracle.jdbc.driver.oracledriver()); cx = DriverManager.getConnection ("jdbc:oracle:thin:@camparols:1521:bdsoutou","soutou","ingres"); Eyrolles
11 ArrayList lignes = getsalles(); System.out.println("Liste des salles :\n"); System.out.println("nSalle\tnomSalle \tnbposte\tindip"); System.out.println(" "); String[] lig; for (int i=0;i<lignes.size();i++) { lig = (String []) lignes.get(i); System.out.println(lig[0]+" \t"+lig[1]+" \t"+lig[2]+" \t"+lig[3]);} deletesalle(6); int excep = deletesallepl("s9"); if (excep==0) System.out.println("Salle 9 supprimée"); else System.out.println("Suppression impossible, code retour : "+excep); Fils présents excep = deletesallepl("s01"); if (excep==0) System.out.println("Salle?? supprimée"); else System.out.println("Suppression impossible, code: "+excep);} catch (SQLException ex) {while (ex!= null) { System.out.println ("Statut SQL : "+ex.getsqlstate()); System.out.println ("Message : "+ex.getmessage()); System.out.println ("Code erreur : "+ex.geterrorcode()); ex = ex.getnextexception(); } } } } Curseur modifiable public static void deletesalle(int nl) {try { etatmodifiable = cx.createstatement(resultset.type_scroll_insensitive, ResultSet.CONCUR_UPDATABLE); cx.setautocommit(false); rs2 = etatmodifiable.executequery("select s.* FROM Salle s"); if (rs2.absolute(nl)) {rs2.deleterow(); cx.commit(); System.out.println("Salle supprimée");} else System.out.println("Désolé, pas de "+ nl +" ème salle!"); rs2.close(); etatmodifiable.close(); } catch (SQLException ex) { while (ex!= null) { System.out.println ("Statut SQL : "+ex.getsqlstate()); System.out.println ("Message : "+ex.getmessage()); System.out.println ("Code erreur : "+ex.geterrorcode()); ex = ex.getnextexception(); } } } Appel d un sous-programme public static int deletesallepl(string ns) { int result = 0; try {cetat = cx.preparecall("{? = call supprimesalle(?)}"); Eyrolles cetat.registeroutparameter(1,java.sql.types.integer); cetat.setstring(2,ns); cetat.execute(); result = cetat.getint(1); cetat.close(); } catch (SQLException ex) { while (ex!= null) { System.out.println ("Statut SQL : "+ex.getsqlstate()); System.out.println ("Message : "+ex.getmessage()); System.out.println ("Code erreur : "+ex.geterrorcode()); ex = ex.getnextexception(); } } return result;} Chapitre 10 (SQLJ) Itérateur nommé import java.io.*; import java.sql.*; import oracle.sqlj.runtime.oracle; public class Consulte { public static void affichesalle(string ns) { try {Oracle.connect(Consulte.class,"connect.properties"); String noms, ip, nbp; #sql { SELECT nomsalle, nbposte, indip INTO :noms, :nbp, :ip FROM Salle WHERE nsalle = :ns }; System.out.println(noms+" ("+nbp+" postes, segment IP : "+ip+")");} catch(sqlexception ex) { ex.printstacktrace(); } } public static void affichepostes(string ns) { try {Oracle.connect(Consulte.class,"connect.properties"); #sql iterator IterateurPoste (String nposte, String nomposte, String indip, String ad,string typeposte); IterateurPoste rs_poste; #sql rs_poste = { SELECT nposte, nomposte, indip, ad, typeposte FROM Poste WHERE nsalle = :ns }; System.out.println("Liste des postes : "); while(rs_poste.next()) { System.out.print("Numero: "+rs_poste.nposte()); System.out.print(" Nom Poste: "+rs_poste.nomposte()); System.out.print(" IP: "+rs_poste.indip()); System.out.print(" Adr: "+rs_poste.ad()); System.out.println("Type Poste: "+rs_poste.typeposte()); } rs_poste.close(); } catch(sqlexception ex) { ex.printstacktrace(); } } public static void main ( String[] args ) {String ns; System.out.print("Saisir le numero d'une salle : "); ns = lire(); Eyrolles
12 affichesalle(ns); affichepostes(ns);} private static String lire() {String c=""; try {BufferedReader entrée = new BufferedReader(new InputStreamReader(System.in)); c = entree.readline();} catch (java.io.ioexception e) {System.out.println("Une erreur d'entreesortie est survenue!!!"); System.exit(0);} return c;} } Mise à jour de la base import java.io.*; import java.sql.*; import oracle.sqlj.runtime.oracle; public class Insere { public static void insere(string[] valeurs) { try {Oracle.connect(Insere.class,"connect.properties"); String v0 = valeurs[0], v1=valeurs[1], v3=valeurs[3], v4=valeurs[4]; int v5 = Integer.parseInt(valeurs[5]), v6=0; java.sql.date v2 = null; if (!valeurs[2].equals("null")) v2 = java.sql.date.valueof(valeurs[2]); #sql { INSERT INTO logiciel VALUES (:v0,:v1,:v2,:v3,:v4,:v5,:v6) }; #sql { COMMIT }; Oracle.close(); } catch(sqlexception ex) { if (ex.geterrorcode() == 1) System.out.println("Logiciel déjà existant!"); else if (ex.geterrorcode() == 913) System.out.println("Trop de valeurs!"); else if (ex.geterrorcode() == 942) System.out.println("Table inconnue!"); else if (ex.geterrorcode() == 947) System.out.println("Manque de valeurs!"); else if (ex.geterrorcode()==1401) System.out.println("Valeur trop longue!"); else if (ex.geterrorcode()==1438) System.out.println("Valeur trop grande!"); else if (ex.geterrorcode() == 2291) System.out.println("Type inconnu!"); } } public static void main ( String[] args ) {String[][] valeurs = new String[3][8]; valeurs[0][0] = "v1"; valeurs[0][1] = "Forms"; valeurs[0][2] =" "; valeurs[0][3]="4"; valeurs[0][4] = "UNIX"; valeurs[0][5] = "300"; valeurs[1][0] = "v2"; valeurs[1][1] ="SQLJ"; valeurs[1][2] =" "; valeurs[1][3] = "1"; valeurs[1][4] = "UNIX"; valeurs[1][5] ="560"; valeurs[2][0] = "v3"; valeurs[2][1] = "MySQL"; valeurs[2][2] =" "; valeurs[2][3] = "7"; valeurs[2][4] = "PCNT"; valeurs[2][5] = "0"; for (int i=0; i<valeurs.length; i++) insere(valeurs[i]);} } Eyrolles
Corrigés des exercices SQL pour MySQL
Corrigés des exercices SQL pour MySQL Christian Soutou Eyrolles 2006 Chapitre 1 Création des tables CREATE TABLE Segment (indip varchar(11), nomsegment varchar(20) NOT NULL, etage TINYINT(1), CONSTRAINT
Langages Orientés Objet Java
Langages Orientés Objet Java Exceptions Arnaud LANOIX Université Nancy 2 24 octobre 2006 Arnaud LANOIX (Université Nancy 2) Langages Orientés Objet Java 24 octobre 2006 1 / 32 Exemple public class Example
TP1 : Correction. Rappels : Stream, Thread et Socket TCP
Université Paris 7 M1 II Protocoles réseaux TP1 : Correction Rappels : Stream, Thread et Socket TCP Tous les programmes seront écrits en Java. 1. (a) Ecrire une application qui lit des chaines au clavier
Licence Informatique Année 2005-2006. Exceptions
Université Paris 7 Java Licence Informatique Année 2005-2006 TD n 8 - Correction Exceptions Exercice 1 La méthode parseint est spécifiée ainsi : public static int parseint(string s) throws NumberFormatException
Introduction. GEAL Bibliothèque Java pour écrire des algorithmes évolutionnaires. Objectifs. Simplicité Evolution et coévolution Parallélisme
GEAL 1.2 Generic Evolutionary Algorithm Library http://dpt-info.u-strasbg.fr/~blansche/fr/geal.html 1 /38 Introduction GEAL Bibliothèque Java pour écrire des algorithmes évolutionnaires Objectifs Généricité
--Nom: Laurent Senécal-Léonard 14 143 483
--Nom: Laurent Senécal-Léonard 14 143 483 --Création de la table aéroport et de ses attributs drop table Aeroport cascade constraints; create table Aeroport ( codeaeroport varchar2(6) not null, ville varchar2(20)
Remote Method Invocation
1 / 22 Remote Method Invocation Jean-Michel Richer [email protected] http://www.info.univ-angers.fr/pub/richer M2 Informatique 2010-2011 2 / 22 Plan Plan 1 Introduction 2 RMI en détails
Brazil + JDBC Juin 2001, [email protected] http://jfod.cnam.fr/tp_cdi/douin/
Brazil + JDBC Juin 2001, [email protected] http://jfod.cnam.fr/tp_cdi/douin/ version du 26 Mai 2003 : JDBC-SQL et Brazil pré-requis : lecture de Tutorial JDBC de Sun Bibliographie Brazil [Bra00]www.sun.com/research/brazil
The Need For Speed. leads to PostgreSQL. Dimitri Fontaine [email protected]. 28 Mars 2013
The Need For Speed leads to PostgreSQL Dimitri Fontaine [email protected] 28 Mars 2013 Dimitri Fontaine [email protected] The Need For Speed 28 Mars 2013 1 / 23 Dimitri Fontaine 2ndQuadrant France
Audit de sécurité avec Backtrack 5
Audit de sécurité avec Backtrack 5 DUMITRESCU Andrei EL RAOUSTI Habib Université de Versailles Saint-Quentin-En-Yvelines 24-05-2012 UVSQ - Audit de sécurité avec Backtrack 5 DUMITRESCU Andrei EL RAOUSTI
Introduction au BIM. ESEB 38170 Seyssinet-Pariset Economie de la construction email : [email protected]
Quel est l objectif? 1 La France n est pas le seul pays impliqué 2 Une démarche obligatoire 3 Une organisation plus efficace 4 Le contexte 5 Risque d erreur INTERVENANTS : - Architecte - Économiste - Contrôleur
System Requirements Orion
Orion Date 21/12/12 Version 1.0 Référence 001 Auteur Antoine Crué VOS CONTACTS TECHNIQUES JEAN-PHILIPPE SENCKEISEN ANTOINE CRUE LIGNE DIRECTE : 01 34 93 35 33 EMAIL : [email protected] LIGNE DIRECTE
Installation troubleshooting guide
Installation troubleshooting guide Content ERROR CODE PROBLEMS... 3 Error code 301: Unknown protection system. Verify the installation.... 3 Error code 302: The software cannot be used. The computer date
TP : Système de messagerie - Fichiers properties - PrepareStatement
TP : Système de messagerie - Fichiers properties - PrepareStatement exelib.net Une société souhaite mettre en place un système de messagerie entre ses employés. Les travaux de l équipe chargée de l analyse
Thursday, February 7, 2013. DOM via PHP
DOM via PHP Plan PHP DOM PHP : Hypertext Preprocessor Langage de script pour création de pages Web dynamiques Un ficher PHP est un ficher HTML avec du code PHP
Archived Content. Contenu archivé
ARCHIVED - Archiving Content ARCHIVÉE - Contenu archivé Archived Content Contenu archivé Information identified as archived is provided for reference, research or recordkeeping purposes. It is not subject
POB-JAVA Documentation
POB-JAVA Documentation 1 INTRODUCTION... 4 2 INSTALLING POB-JAVA... 5 Installation of the GNUARM compiler... 5 Installing the Java Development Kit... 7 Installing of POB-Java... 8 3 CONFIGURATION... 9
--- Vincent Hamel, hamv2701 14 162 988
--- Vincent Hamel, hamv2701 14 162 988 ------------------------------------------------- drop table Aeroport cascade constraints; create table Aeroport ( codeaeroport varchar(20), ville varchar(20), etat
Modifier le texte d'un élément d'un feuillet, en le spécifiant par son numéro d'index:
Bezier Curve Une courbe de "Bézier" (fondé sur "drawing object"). select polygon 1 of page 1 of layout "Feuillet 1" of document 1 set class of selection to Bezier curve select Bezier curve 1 of page 1
Sun StorEdge A5000 Installation Guide
Sun StorEdge A5000 Installation Guide for Windows NT Server 4.0 Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303-4900 USA 650 960-1300 Fax 650 969-9131 Part No. 805-7273-11 October 1998,
Etudes de cas en OCL avec l outil USE 2
Etudes de cas en OCL avec l outil USE 2 1 2 UML-based Specification Environment 3 1ère étude de cas : invariants Classes en notation textuelle model Company 4 class Employee attributes name : String salary
Introduction ToIP/Asterisk Quelques applications Trixbox/FOP Autres distributions Conclusion. Asterisk et la ToIP. Projet tuteuré
Asterisk et la ToIP Projet tuteuré Luis Alonso Domínguez López, Romain Gegout, Quentin Hourlier, Benoit Henryon IUT Charlemagne, Licence ASRALL 2008-2009 31 mars 2009 Asterisk et la ToIP 31 mars 2009 1
AgroMarketDay. Research Application Summary pp: 371-375. Abstract
Fourth RUFORUM Biennial Regional Conference 21-25 July 2014, Maputo, Mozambique 371 Research Application Summary pp: 371-375 AgroMarketDay Katusiime, L. 1 & Omiat, I. 1 1 Kampala, Uganda Corresponding
TP N 10 : Gestion des fichiers Langage JAVA
TP N 10 : Gestion des fichiers Langage JAVA Rappel : Exemple d utilisation de FileReader/FileWriter import java.io.*; public class Copy public static void main(string[] args) throws IOException File inputfile
Les fragments. Programmation Mobile Android Master CCI. Une application avec deux fragments. Premier layout : le formulaire
Programmation Mobile Android Master CCI Bertrand Estellon Aix-Marseille Université March 23, 2015 Bertrand Estellon (AMU) Android Master CCI March 23, 2015 1 / 266 Les fragments Un fragment : représente
Technical Service Bulletin
Technical Service Bulletin FILE CONTROL CREATED DATE MODIFIED DATE FOLDER OpenDrive 02/05/2005 662-02-25008 Rev. : A Installation Licence SCO sur PC de remplacement English version follows. Lors du changement
LSINF1124 Projet de programmation
LSINF1124 Projet de programmation Database Programming with Java TM Sébastien Combéfis University of Louvain (UCLouvain) Louvain School of Engineering (EPL) March 1, 2011 Introduction A database is a collection
Office of the Auditor General / Bureau du vérificateur général FOLLOW-UP TO THE 2007 AUDIT OF THE DISPOSAL OF PAVEMENT LINE MARKER EQUIPMENT 2009
Office of the Auditor General / Bureau du vérificateur général FOLLOW-UP TO THE 2007 AUDIT OF THE DISPOSAL OF PAVEMENT LINE MARKER EQUIPMENT 2009 SUIVI DE LA VÉRIFICATION DE L ALIÉNATION D UNE TRACEUSE
Memory Eye SSTIC 2011. Yoann Guillot. Sogeti / ESEC R&D yoann.guillot(at)sogeti.com
Memory Eye SSTIC 2011 Yoann Guillot Sogeti / ESEC R&D yoann.guillot(at)sogeti.com Y. Guillot Memory Eye 2/33 Plan 1 2 3 4 Y. Guillot Memory Eye 3/33 Memory Eye Analyse globale d un programme Un outil pour
Windows et Office XP, pack en 2 volumes : Microsoft Office 2003 KillerTips; Décrasser Windows X
Windows et Office XP, pack en 2 volumes : Microsoft Office 2003 KillerTips; Décrasser Windows XP Download: Windows et Office XP, pack en 2 volumes : Microsoft Office 2003 KillerTips; Décrasser Windows
Sun Management Center Change Manager 1.0.1 Release Notes
Sun Management Center Change Manager 1.0.1 Release Notes Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 817 0891 10 May 2003 Copyright 2003 Sun Microsystems, Inc. 4150
Web - Travaux Pratiques 1
Web - Travaux Pratiques 1 Pour rappel, le squelette d une page HTML5 est la suivante : Syntaxe ... ... Une fois qu une page est terminée,
Archived Content. Contenu archivé
ARCHIVED - Archiving Content ARCHIVÉE - Contenu archivé Archived Content Contenu archivé Information identified as archived is provided for reference, research or recordkeeping purposes. It is not subject
Sun Cluster 2.2 7/00 Data Services Update: Apache Web Server
Sun Cluster 2.2 7/00 Data Services Update: Apache Web Server Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303-4900 U.S.A. 650-960-1300 Part No. 806-6121 July 2000, Revision A Copyright 2000
Handling Exceptions. Copyright 2006, Oracle. All rights reserved. Oracle Database 10g: PL/SQL Fundamentals 8-1
Handling Exceptions Copyright 2006, Oracle. All rights reserved. Oracle Database 10g: PL/SQL Fundamentals 8-1 Objectives After completing this lesson, you should be able to do the following: Define PL/SQL
Sun StorEdge RAID Manager 6.2.21 Release Notes
Sun StorEdge RAID Manager 6.2.21 Release Notes formicrosoftwindowsnt Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303-4900 USA 650 960-1300 Fax 650 969-9131 Part No. 805-6890-11 November
N1 Grid Service Provisioning System 5.0 User s Guide for the Linux Plug-In
N1 Grid Service Provisioning System 5.0 User s Guide for the Linux Plug-In Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 819 0735 December 2004 Copyright 2004 Sun Microsystems,
Archived Content. Contenu archivé
ARCHIVED - Archiving Content ARCHIVÉE - Contenu archivé Archived Content Contenu archivé Information identified as archived is provided for reference, research or recordkeeping purposes. It is not subject
Sun Enterprise Optional Power Sequencer Installation Guide
Sun Enterprise Optional Power Sequencer Installation Guide For the Sun Enterprise 6500/5500 System Cabinet and the Sun Enterprise 68-inch Expansion Cabinet Sun Microsystems, Inc. 901 San Antonio Road Palo
Archived Content. Contenu archivé
ARCHIVED - Archiving Content ARCHIVÉE - Contenu archivé Archived Content Contenu archivé Information identified as archived is provided for reference, research or recordkeeping purposes. It is not subject
Note concernant votre accord de souscription au service «Trusted Certificate Service» (TCS)
Note concernant votre accord de souscription au service «Trusted Certificate Service» (TCS) Veuillez vérifier les éléments suivants avant de nous soumettre votre accord : 1. Vous avez bien lu et paraphé
Upgrading the Solaris PC NetLink Software
Upgrading the Solaris PC NetLink Software By Don DeVitt - Enterprise Engineering Sun BluePrints OnLine - January 2000 http://www.sun.com/blueprints Sun Microsystems, Inc. 901 San Antonio Road Palo Alto,
Rio de Janeiro. Tout simplement, HISTORIQUE! RESULTATS SPORTIFS Christophe PINNA NICE ELITE SPORT 21, bd Carnot 06300 Nice Tél. : +33 (0)6 08 45 80 07 Fax : +33 (0)4 93 56 78 77 Email : [email protected]
Hours: The hours for the class are divided between practicum and in-class activities. The dates and hours are as follows:
March 2014 Bienvenue à EDUC 1515 Français Langue Seconde Partie 1 The following information will allow you to plan in advance for the upcoming session of FSL Part 1 and make arrangements to complete the
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";! SET time_zone = "+00:00";!
-- phpmyadmin SQL Dump -- version 4.1.3 -- http://www.phpmyadmin.net -- -- Client : localhost -- Généré le : Lun 19 Mai 2014 à 15:06 -- Version du serveur : 5.6.15 -- Version de PHP : 5.4.24 SET SQL_MODE
Optimizing Solaris Resources Through Load Balancing
Optimizing Solaris Resources Through Load Balancing By Tom Bialaski - Enterprise Engineering Sun BluePrints Online - June 1999 http://www.sun.com/blueprints Sun Microsystems, Inc. 901 San Antonio Road
BILL C-665 PROJET DE LOI C-665 C-665 C-665 HOUSE OF COMMONS OF CANADA CHAMBRE DES COMMUNES DU CANADA
C-665 C-665 Second Session, Forty-first Parliament, Deuxième session, quarante et unième législature, HOUSE OF COMMONS OF CANADA CHAMBRE DES COMMUNES DU CANADA BILL C-665 PROJET DE LOI C-665 An Act to
RAPPORT FINANCIER ANNUEL PORTANT SUR LES COMPTES 2014
RAPPORT FINANCIER ANNUEL PORTANT SUR LES COMPTES 2014 En application de la loi du Luxembourg du 11 janvier 2008 relative aux obligations de transparence sur les émetteurs de valeurs mobilières. CREDIT
Méthodes ensemblistes pour une localisation robuste de robots sous-marins
Méthodes ensemblistes pour une localisation robuste de robots sous-marins Jan Sliwka To cite this version: Jan Sliwka. Méthodes ensemblistes pour une localisation robuste de robots sous-marins. Automatique
Service Level Definitions and Interactions
Service Level Definitions and Interactions By Adrian Cockcroft - Enterprise Engineering Sun BluePrints OnLine - April 1999 http://www.sun.com/blueprints Sun Microsystems, Inc. 901 San Antonio Road Palo
Personnalisez votre intérieur avec les revêtements imprimés ALYOS design
Plafond tendu à froid ALYOS technology ALYOS technology vous propose un ensemble de solutions techniques pour vos intérieurs. Spécialiste dans le domaine du plafond tendu, nous avons conçu et développé
Calcul parallèle avec R
Calcul parallèle avec R ANF R Vincent Miele CNRS 07/10/2015 Pour chaque exercice, il est nécessaire d ouvrir une fenètre de visualisation des processes (Terminal + top sous Linux et Mac OS X, Gestionnaire
- 343 - PIXEL-PLANES: A VLSI-ORIENTED DESIGN FOR 3-D RASTER GRAPHICS. H. Fuchs and J. Pou1ton. University of North Carolina at Chapel Hill
- 343 - PIXEL-PLANES: A VLSI-ORIENTED DESIGN FOR 3-D RASTER GRAPHICS H. Fuchs and J. Pou1ton University of North Carolina at Chapel Hill ABSTRACT We present here the design for a machine which can rapidly
Archived Content. Contenu archivé
ARCHIVED - Archiving Content ARCHIVÉE - Contenu archivé Archived Content Contenu archivé Information identified as archived is provided for reference, research or recordkeeping purposes. It is not subject
Group Projects M1 - Cubbyhole
SUPINFO Academic Dept. Project presentation Group Projects Version 1.0 Last update: 20/11/2013 Use: Students Author: Samuel CUELLA Conditions d utilisations : SUPINFO International University vous permet
Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé. http://www.rzo.free.fr
Cours de Java Sciences-U Lyon Java - Introduction Java - Fondamentaux Java Avancé http://www.rzo.free.fr Pierre PARREND 1 Octobre 2004 Sommaire Java Introduction Java Fondamentaux Java Avancé GUI Graphical
Solaris 10 Documentation README
Solaris 10 Documentation README Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 817 0550 10 January 2005 Copyright 2005 Sun Microsystems, Inc. 4150 Network Circle, Santa
Scrubbing Disks Using the Solaris Operating Environment Format Program
Scrubbing Disks Using the Solaris Operating Environment Format Program By Rob Snevely - Enterprise Technology Center Sun BluePrints OnLine - June 2000 http://www.sun.com/blueprints Sun Microsystems, Inc.
STUDENT APPLICATION FORM (Dossier d Inscription) ACADEMIC YEAR 2010-2011 (Année Scolaire 2010-2011)
Institut d Administration des Entreprises SOCRATES/ERASMUS APPLICATION DEADLINE : 20th November 2010 OTHER (Autre) STUDENT APPLICATION FORM (Dossier d Inscription) ACADEMIC YEAR 2010-2011 (Année Scolaire
niveau : 1 ere année spécialité : mécatronique & froid et climatisation AU : 2014-2015 Programmation C Travaux pratiques
École Supérieure Privée d Ingénieurs de Monastir niveau : 1 ere année spécialité : mécatronique & froid et climatisation AU : 2014-2015 Programmation C Travaux pratiques Correction Exercice 1 TP3 long
Handling Exceptions. Schedule: Timing Topic 45 minutes Lecture 20 minutes Practice 65 minutes Total
Handling Exceptions Schedule: Timing Topic 45 minutes Lecture 20 minutes Practice 65 minutes Total Objectives After completing this lesson, you should be able to do the following: Define PL/SQL exceptions
ACP-EU Cooperation Programme in Science and Technology (S&T II) / Programme de Coopération ACP-UE pour la Science et la Technologie
ACP Science and Technologie Programme Programme Management Unit ACP-EU Cooperation Programme in Science and Technology (S&T II) / Programme de Coopération ACP-UE pour la Science et la Technologie EuropeAid/133437/D/ACT/ACPTPS
Measuring Policing Complexity: A Research Based Agenda
ARCHIVED - Archiving Content ARCHIVÉE - Contenu archivé Archived Content Contenu archivé Information identified as archived is provided for reference, research or recordkeeping purposes. It is not subject
Les Broadcast Receivers...
Les Broadcast Receivers... http://developer.android.com/reference/android/content/broadcastreceiver.html Mécanisme qui, une fois «enregistré» dans le système, peut recevoir des Intents Christophe Logé
Database Programming. Week 10-2. *Some of the slides in this lecture are created by Prof. Ian Horrocks from University of Oxford
Database Programming Week 10-2 *Some of the slides in this lecture are created by Prof. Ian Horrocks from University of Oxford SQL in Real Programs We have seen only how SQL is used at the generic query
Reconstruction d un modèle géométrique à partir d un maillage 3D issu d un scanner surfacique
Reconstruction d un modèle géométrique à partir d un maillage 3D issu d un scanner surfacique Silvère Gauthier R. Bénière, W. Puech, G. Pouessel, G. Subsol LIRMM, CNRS, Université Montpellier, France C4W,
The JAVA Way: JDBC and SQLJ
The JAVA Way: JDBC and SQLJ David Toman School of Computer Science University of Waterloo Introduction to Databases CS348 David Toman (University of Waterloo) JDBC/SQLJ 1 / 21 The JAVA way to Access RDBMS
ENABLING OBJECTIVE AND TEACHING POINTS. DRILL: 401.02 5. TIME: One 30 minutes period. 6. METHOD/APPROACH: a. demonstration; and. b. performance.
CHAPTER 4: LESSON SPECIFICATIONS COURSE TITLE: GREEN STAR COURSE ENABLING OBJECTIVE AND TEACHING POINTS CTS NUMBER: A-CR-CCP-116/PC-001 TRAINING DETAILS DRILL: 401.02 5. TIME: One 30 minutes period. 1.
Course Objectives. Database Applications. External applications. Course Objectives Interfacing. Mixing two worlds. Two approaches
Course Objectives Database Applications Design Construction SQL/PSM Embedded SQL JDBC Applications Usage Course Objectives Interfacing When the course is through, you should Know how to connect to and
How To Use The Database In Jdbc.Com On A Microsoft Gdbdns.Com (Amd64) On A Pcode (Amd32) On An Ubuntu 8.2.2 (Amd66) On Microsoft
CS 7700 Transaction Design for Microsoft Access Database with JDBC Purpose The purpose of this tutorial is to introduce the process of developing transactions for a Microsoft Access Database with Java
Survey on Conference Services provided by the United Nations Office at Geneva
Survey on Conference Services provided by the United Nations Office at Geneva Trade and Development Board, fifty-eighth session Geneva, 12-23 September 2011 Contents Survey contents Evaluation criteria
Database Access from a Programming Language: Database Access from a Programming Language
Database Access from a Programming Language: Java s JDBC Werner Nutt Introduction to Databases Free University of Bozen-Bolzano 2 Database Access from a Programming Language Two Approaches 1. Embedding
Database Access from a Programming Language:
Database Access from a Programming Language: Java s JDBC Werner Nutt Introduction to Databases Free University of Bozen-Bolzano 2 Database Access from a Programming Language Two Approaches 1. Embedding
STAGE INTERNATIONAL DE KENDO KENDO INTERNATIONAL SEMINAR
F F J D A. C O M I T É N A T I O N A L D E K E N D O E T D I S C I P L I N E S R A T T A C H É E S P a g e 1 Destinataires. Recipients : FEDERATIONS INTERNATIONALES DE KENDO / INTERNATIONAL KENDO FEDERATIONS
Machine de Soufflage defibre
Machine de Soufflage CABLE-JET Tube: 25 à 63 mm Câble Fibre Optique: 6 à 32 mm Description générale: La machine de soufflage parfois connu sous le nom de «câble jet», comprend une chambre d air pressurisé
Archived Content. Contenu archivé
ARCHIVED - Archiving Content ARCHIVÉE - Contenu archivé Archived Content Contenu archivé Information identified as archived is provided for reference, research or recordkeeping purposes. It is not subject
DIRECTIVE ON ACCOUNTABILITY IN CONTRACT MANAGEMENT FOR PUBLIC BODIES. An Act respecting contracting by public bodies (chapter C-65.1, a.
DIRECTIVE ON ACCOUNTABILITY IN CONTRACT MANAGEMENT FOR PUBLIC BODIES An Act respecting contracting by public bodies (chapter C-65.1, a. 26) SUBJECT 1. The purpose of this directive is to establish the
SQL and Java. Database Systems Lecture 19 Natasha Alechina
Database Systems Lecture 19 Natasha Alechina In this Lecture SQL in Java SQL from within other Languages SQL, Java, and JDBC For More Information Sun Java tutorial: http://java.sun.com/docs/books/tutorial/jdbc
Service Level Agreement in the Data Center
Service Level Agreement in the Data Center By Edward Wustenhoff Sun Professional Services Sun BluePrints OnLine - April 2002 http://www.sun.com/blueprints Sun Microsystems, Inc. 4150 Network Circle Santa
REVOCABILITY. Contact: Lars MEINHARDT, Telephone:(32-2) 298.45.87, [email protected]
EUROPEAN COMMISSION Internal Market DG FINANCIAL INSTITUTIONS Retail issues and payment systems Brussels, 24 September 2003 MARKT/4010/2003 Final Draft A POSSIBLE LEGAL FRAMEWORK FOR THE SINGLE PAYMENT
SunFDDI 6.0 on the Sun Enterprise 10000 Server
SunFDDI 6.0 on the Sun Enterprise 10000 Server Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303-4900 USA 650 960-1300 Fax 650 969-9131 Part No.: 806-3610-11 November 1999, Revision A Send
Formulaire de Modification de Données de l Emploi/Job Data Change Form France
Formulaire de Modification de Données de l Emploi/Job Data Change Form France Instructions du Formulaire de Modification de données de l emploi / JOB DATA CHANGE FORM INSTRUCTIONS Ce formulaire est à l'usage
Comparing JavaServer Pages Technology and Microsoft Active Server Pages
Comparing JavaServer Pages Technology and Microsoft Active Server Pages An Analysis of Functionality Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303 1 (800) 786.7638 1.512.434.1511 Copyright
Sun Management Center 3.5 Update 1b Release Notes
Sun Management Center 3.5 Update 1b Release Notes Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 819 3054 10 June 2005 Copyright 2005 Sun Microsystems, Inc. 4150 Network
Solutions Premiers Pas
Solutions Premiers Pas Solution 1: public class HelloWorld { System.out.println("Hello World!"); Solution 2 : public class HelloWorld { System.out.println(args[0]); Solution 3 : public class HelloWorldWithMethod{
General Certificate of Education Advanced Level Examination June 2012
General Certificate of Education Advanced Level Examination June 2012 French Unit 4 Speaking Test Candidate s Material To be conducted by the teacher examiner between 7 March and 15 May 2012 (FRE4T) To
Aucune validation n a été faite sur l exemple.
Cet exemple illustre l utilisation du Type BLOB dans la BD. Aucune validation n a été faite sur l exemple. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;
FEDICT IAM CONFIGURATION ET INSTALLATION
FEDICT IAM CONFIGURATION ET INSTALLATION Fedict All Rights Reserved Unclassified Table des matières a) Contrôle du Document COPYRIGHT ET CLASSIFICATION Copyright à Fedict, avec All Rights Reserved. Unclassified.
Product / Produit Description Duration /Days Total / Total
DELL Budget Proposal / Proposition Budgétaire Solutions Design Centre N o : 200903201602 Centre de Design de Solutions Date: 2009-03-23 Proposition valide pour 30 jours / Proposal valid for 30 days Customer
2012 Syllabus. Vocal Revisions September 2015
2012 Syllabus Vocal Revisions TABLE OF CONTENTS - TABLE DES MATIÈRES VOCAL SECTION GIRLS ENGLISH VOCAL SOLOS SOLOS VOCAL ANGLAIS FILLES GIRLS FRENCH VOCAL SOLOS SOLOS VOCALS FRANÇAIS FILLES BOYS ENGLISH
Chapter 9 Java and SQL. Wang Yang [email protected]
Chapter 9 Java and SQL Wang Yang [email protected] Outline Concern Data - File & IO vs. Database &SQL Database & SQL How Connect Java to SQL - Java Model for Database Java Database Connectivity (JDBC)
Democratic Republic of the Congo Tourist visa Application
Democratic Republic of the Congo Tourist visa Application Please enter your contact information Name: Email: Tel: Mobile: The latest date you need your passport returned in time for your travel: Democratic
TP JSP : déployer chaque TP sous forme d'archive war
TP JSP : déployer chaque TP sous forme d'archive war TP1: fichier essai.jsp Bonjour Le Monde JSP Exemple Bonjour Le Monde. Après déploiement regarder dans le répertoire work de l'application
