sql pour oracle
Post on 15-Jul-2015
543 Views
Preview:
TRANSCRIPT
-
SQLpour
OracleApplications avec Java, PHP et XML
Christian Soutou
SQLpour
OracleApplications avec Java, PHP et XML
3 dition
3 dition
SQLp
ourOra
cle
C.
Souto
u
Code
dite
ur :
G122
99
ISBN
: 97
8-2-
212-
1229
9-2
29E
Christian Soutou est matre de confrences l'universit Toulouse Le Mirail et dirige le dpar-tement Rseaux et Tlcoms de lIUT de Blagnac. Il intervient autour des bases de donnes et destechnologies de l'information (XML, services Web et SOA) en licence et master professionnels. Il est galement l'auteur des ouvrages Apprendre SQL avec MySQL et UML 2 pour les bases dedonnes, parus aux ditions Eyrolles.
Apprendre SQL par lexempleTout particulirement conu pour les tudiants et les dbutants, cet ouvrage permet d'acqurir les notionsessentielles du langage SQL par le biais d'Oracle, leader des systmes de gestion de bases de donnes. Conciset de difficult progressive, il est maill de nombreux exemples et de 50 exercices corrigs qui illustrent tousles aspects fondamentaux de SQL. Couvrant les versions 11 g, 10 g et 9i d'Oracle, il permet galement de sefamiliariser avec les principales fonctionnalits de ce logiciel, ainsi qu'avec les API les plus utilises (JBDC etPHP). Mise jour et augmente, la troisime dition de cet ouvrage consacre en outre un chapitre l'interop-rabilit entre SQL et XML (documents et grammaires) et la gestion de ressources avec XML DB Repository.
qui sadresse cet ouvrage ? tous ceux qui souhaitent s'initier SQL, Oracle ou la gestion de bases de donnes Aux dveloppeurs C, C++, Java, PHP et XML qui souhaitent stocker leurs donnes
Installez vous-mme Oracle !Cet ouvrage dcrit en dtail la procdure d'installation des versions 11 g, 10 g, 10 g Express et 9i d'Oracle.Ces versions peuvent tre tlcharges gratuitement sur le site d'Oracle : destines des fins non commerciales,elles sont compltes et sans limitation de dure.
Au sommaireIntroduction. Installation d'Oracle. Les interfaces SQL *Plus. Partie I : SQL de base. Dfinition des don-nes. Manipulation des donnes. volution dun schma. Interrogation des donnes. Contrle des donnes. Partie II :PL/SQL. Bases du PL/SQL. Programmation avance. Partie III : SQL avanc. Le prcompilateurPro*C/C++. Linterface JDBC. Lapproche SQLJ. Procdures stockes et externes. Oracle et le Web (Web Toolkit, PSP,API PHP). Oracle XML DB.
Sur le site www.editions-eyrolles.com Tlchargez le code source des exemples et le corrig des exercices Consultez les mises jour et les complments Dialoguez avec lauteur
97
82
21
21
22
99
2
3e d
ition
3e d
ition
Avec 50 exercicescorrigs
soutou ok 29/01/08 11:13 Page 1
-
SQLpour
Oracle3e dition3e dition
-
CHEZ LE MME DITEUR
Du mme auteur
C. Soutou. De UML SQL. N11098, 2002, 500 pages.
C. Soutou. Apprendre SQL avec MySQL. N11915, 2006, 398 pages.
Autour doracle et de sql
G. Briard Oracle 10g sous Windows. N11707, 2006, 846 pages.
R. Bizo Oracle 10g - Administration. N11747, 2005, 744 pages.
R. Bizo SQL pour Oracle 10g. N12055, 2006, 650 pages.
R. Bizo PL/SQL pour Oracle 10g. N12056, 2006, 328 pages.
C. Pierre de Geyer et G. Ponon Mmento PHP et SQL. N11785, 2006, 14 pages.
G. Briard Oracle9i sous Windows. N11220, 2003, 1040 pages.
G. Briard Oracle9i sous Linux. N11337, 2003, 894 pages.
B. Vidal Applications mobiles avec Oracle. N9251, 2001, 686 pages.
R. Bizo. Oracle9i : SQL et PL/SQL. N11351, 2003, 468 pages.
M. iSrael. SQL Server 2000. N11027, 2001, 1078 pages.
M. iSrael. SQL Server 2000. N11027, 2001, 1078 pages.
-
Christian SoutouAvec la participation dOlivier Teste
SQLpour
Oracle3e dition3e dition
-
DITIONS EYROLLES61, bd Saint-Germain75240 Paris Cedex 05
www.editions-eyrolles.com
Le code de la proprit intellectuelle du 1er juillet 1992 interdit en effet expressment la photocopie usage collectif sans autorisation des ayants droit. Or, cette pratique sest gnralise notamment dans les tablissements denseignement, provoquant une baisse brutale des achats de livres, au point que la possibilit mme pour les auteurs de crer des uvres nouvelles et de les faire diter correctement est aujourdhui menace.En application de la loi du 11 mars 1957, il est interdit de reproduire intgralement ou partiellement le
prsent ouvrage, sur quelque support que ce soit, sans autorisation de lditeur ou du Centre Franais dExploitation du Droit de Copie, 20, rue des Grands-Augustins, 75006 Paris. Groupe Eyrolles, 2004, 2005, 2008, ISBN : 978-2-212-12299-2
-
Mise en page : TyPAODpt lgal : fvrier 2008
N dditeur : 7760Imprim en France
-
ditions Eyrolles V
Table des matires
Remerciements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XVII
Avant-propos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIXGuide de lecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIX
Premire partie : SQL de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXDeuxime partie : PL/SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXTroisime partie : SQL avanc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXAnnexe : bibliographie et webographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XX
Conventions dcriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIContact avec lauteur et site Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXI
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1SQL, une norme, un succs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Modle de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Tables et donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Les cls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Un peu dhistoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Offre du moment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Notion de schma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Accs Oracle depuis Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Dtail dun numro de version. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Installation dOracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Mise en uvre dOracle9i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Dsinstallation de la 9i. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Mise en uvre dOracle 10g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Dsinstallation de la 10g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Mise en uvre dOracle 10g Express Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Mise en uvre dOracle 11g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Dsinstallation de la 11g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Les interfaces SQL*Plus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Premiers pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Variables denvironnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 propos des accents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
SOUTOU Livre Page V Vendredi, 25. janvier 2008 1:08 13
-
SQL pour Oracle Table des matires
VI ditions Eyrolles
Partie I SQL de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1 Dfinition des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Tables relationnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Cration dune table (CREATE TABLE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Casse et commentaires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Premier exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Conventions recommandes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Types des colonnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Structure dune table (DESC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Commentaires stocks (COMMENT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Index B-tree. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Index bitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Index bass sur des fonctions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Cration dun index (CREATE INDEX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Tables organises en index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Destruction dun schma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2 Manipulation des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Insertions denregistrements (INSERT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Renseigner toutes les colonnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Renseigner certaines colonnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Ne pas respecter des contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Dates/heures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Caractres Unicode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56Donnes LOB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Squences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57Cration dune squence (CREATE SEQUENCE) . . . . . . . . . . . . . . . . . . . . . . . . . . 58Manipulation dune squence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Modification dune squence (ALTER SEQUENCE). . . . . . . . . . . . . . . . . . . . . . . . . 61Visualisation dune squence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62Suppression dune squence (DROP SEQUENCE) . . . . . . . . . . . . . . . . . . . . . . . . . 63
Modifications de colonnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Syntaxe (UPDATE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Modification dune colonne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Modification de plusieurs colonnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Ne pas respecter des contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Dates et intervalles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
SOUTOU Livre Page VI Vendredi, 25. janvier 2008 1:08 13
-
ditions Eyrolles VII
Table des matires SQL pour Oracle
Suppressions denregistrements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Instruction DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Instruction TRUNCATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Intgrit rfrentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Cohrences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Contraintes ct pre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Contraintes ct fils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Cls composites et nulles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Cohrence du fils vers le pre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Cohrence du pre vers le fils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74En rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Flottants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Valeurs spciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Fonctions pour les flottants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3 volution dun schma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Renommer une table (RENAME). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Modifications structurelles (ALTER TABLE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Ajout de colonnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86Renommer des colonnes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86Modifier le type des colonnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87Supprimer des colonnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Colonnes UNUSED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Modifications comportementales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Ajout de contraintes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Suppression de contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90Dsactivation de contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Ractivation de contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Contraintes diffres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97Directives DEFERRABLE et INITIALLY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97Instructions SET CONSTRAINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99Instruction ALTER SESSION SET CONSTRAINTS . . . . . . . . . . . . . . . . . . . . . . . . . 99Directives VALIDATE et NOVALIDATE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99Directive MODIFY CONSTRAINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101Colonne virtuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102Table en lecture seule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4 Interrogation des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Syntaxe (SELECT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110Pseudo-table DUAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Projection (lments du SELECT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Extraction de toutes les colonnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112Extraction de certaines colonnes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
SOUTOU Livre Page VII Vendredi, 25. janvier 2008 1:08 13
-
SQL pour Oracle Table des matires
VIII ditions Eyrolles
Alias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113Duplicatas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113Expressions et valeurs nulles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114Ordonnancement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114Concatnation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Pseudo-colonne ROWID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Pseudo-colonne ROWNUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116Insertion multiligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Restriction (WHERE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117Oprateurs de comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118Oprateurs logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118Oprateurs intgrs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120Caractres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121Numriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124Dates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126Autres fonctions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Regroupements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128Fonctions de groupe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129tude du GROUP BY et HAVING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Oprateurs ensemblistes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134Oprateur INTERSECT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134Oprateurs UNION et UNION ALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135Oprateur MINUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135Ordonner les rsultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136Produit cartsien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Jointures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140Jointure relationnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140Jointures SQL2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140Types de jointures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141quijointure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141Autojointure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143Inquijointure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Jointures externes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145Jointures procdurales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150Jointures mixtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154Sous-interrogations synchronises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155Autres directives SQL2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
SOUTOU Livre Page VIII Vendredi, 25. janvier 2008 1:08 13
-
ditions Eyrolles IX
Table des matires SQL pour Oracle
Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159Dfinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160Division inexacte en SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161Division exacte en SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Requtes hirarchiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162Point de dpart du parcours (START WITH). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163Parcours de larbre (CONNECT BY PRIOR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163Indentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164lagage de larbre (WHERE et PRIOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165Jointures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167Ordonnancement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167Nouveauts 10g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Mises jour conditionnes (fusions) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172Syntaxe (MERGE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172Exemple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173Nouveauts 10g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173Exemple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Expressions rgulires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175Quelques exemples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177Fonction REGEXP_LIKE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177Fonction REGEXP_REPLACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180Fonction REGEXP_INSTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181Fonction REGEXP_SUBSTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183Nouveauts 11g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Extractions diverses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185Directive WITH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185Fonction WIDTH_BUCKET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
5 Contrle des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193Gestion des utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194Cration dun utilisateur (CREATE USER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194Modification dun utilisateur (ALTER USER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196Suppression dun utilisateur (DROP USER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197Profils. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198Console Enterprise Manager. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Privilges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206Privilges systme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206Privilges objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209Privilges prdfinis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Rles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214Cration dun rle (CREATE ROLE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215Rles prdfinis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
SOUTOU Livre Page IX Vendredi, 25. janvier 2008 1:08 13
-
SQL pour Oracle Table des matires
X ditions Eyrolles
Console Enterprise Manager. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217Rvocation dun rle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218Activation dun rle (SET ROLE). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219Modification dun rle (ALTER ROLE). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220Suppression dun rle (DROP ROLE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221Cration dune vue (CREATE VIEW) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224Vues monotables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224Vues complexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229Autres utilisations de vues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232Transmission de droits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236Modification dune vue (ALTER VIEW) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236Suppression dune vue (DROP VIEW) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Synonymes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237Cration dun synonyme (CREATE SYNONYM) . . . . . . . . . . . . . . . . . . . . . . . . . . . 237Transmission de droits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239Suppression dun synonyme (DROP SYNONYM) . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Dictionnaire des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239Constitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240Classification des vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240Dmarche suivre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241Principales vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243Objets dun schma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245Structure dune table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245Recherche des contraintes dune table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246Composition des contraintes dune table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246Dtails des contraintes rfrentielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246Recherche du code source dun sous-programme . . . . . . . . . . . . . . . . . . . . . . . . . . 247Recherche des utilisateurs dune base de donnes . . . . . . . . . . . . . . . . . . . . . . . . . 248Rles reus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Partie II PL/SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
6 Bases du PL/SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Environnement client-serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256Structure dun programme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256Porte des objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257Jeu de caractres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258Identificateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258Commentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
SOUTOU Livre Page X Vendredi, 25. janvier 2008 1:08 13
-
ditions Eyrolles XI
Table des matires SQL pour Oracle
Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259Variables scalaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260Affectations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261Variables %TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261Variables %ROWTYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262Variables RECORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263Variables tableaux (type TABLE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264Rsolution de noms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266Oprateurs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266Variables de substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267Variables de session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268Conventions recommandes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Types de donnes PL/SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269Types prdfinis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269Sous-types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269Conversions de types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271Nouveauts 11g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Structures de contrles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272Structures conditionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272Structures rptitives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275Nouveaut 11g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Interactions avec la base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280Extraire des donnes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280Manipuler des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282Curseurs implicites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284Paquetage DBMS_OUTPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288Caractristiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288Dbut et fin dune transaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289Contrle des transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290Transactions imbriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
7 Programmation avance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295Sous-programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295Procdures catalogues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296Fonctions catalogues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297Codage dun sous-programme PL/SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298Exemples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301Appels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 propos des paramtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303Rcursivit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
SOUTOU Livre Page XI Vendredi, 25. janvier 2008 1:08 13
-
SQL pour Oracle Table des matires
XII ditions Eyrolles
Sous-programmes imbriqus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304Recompilation dun sous-programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306Destruction dun sous-programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Paquetages (packages) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306Spcification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308Appel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309Surcharge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309Recompilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309Destruction dun paquetage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Curseurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310Parcours dun curseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311Utilisation de structures (%ROWTYPE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312Boucle FOR (gestion semi-automatique) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313Utilisation de tableaux (type TABLE). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314Paramtres dun curseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315Accs concurrents (FOR UPDATE et CURRENT OF) . . . . . . . . . . . . . . . . . . . . . . . 315Variables curseurs (REF CURSOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319Exception interne prdfinie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321Exception utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325Utilisation du curseur implicite. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327Exception interne non prdfinie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328Propagation dune exception. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329Procdure RAISE_APPLICATION ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Dclencheurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 quoi sert un dclencheur ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333Mcanisme gnral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334Dclencheurs LMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335Transactions autonomes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347Dclencheurs LDD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348Dclencheurs dinstances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348Appels de sous-programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349Gestion des dclencheurs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350Ordre dexcution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351Tables mutantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351Nouveauts 11g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
SOUTOU Livre Page XII Vendredi, 25. janvier 2008 1:08 13
-
ditions Eyrolles XIII
Table des matires SQL pour Oracle
SQL dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357Utilisation de EXECUTE IMMEDIATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357Utilisation dune variable curseur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Partie III SQL avanc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
8 Le prcompilateur Pro*C/C++. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Ordres SQL intgrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366Variable indicatrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367Cas du VARCHAR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368Zone de communication (SQLCA). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368Connexion une base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369Gestion des exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Extraction dun enregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370Mises jour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372Utilisation de curseurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
Variables scalaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372Variables tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Utilisation de Microsoft Visual C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
9 Linterface JDBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Classification des pilotes (drivers) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377Les paquetages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378Structure dun programme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380Variables denvironnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380Test de votre configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Connexion une base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382Base Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382Base Oracle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383Dconnexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385Interface Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
tats dune connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386Interfaces disponibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386Mthodes gnriques pour les paramtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387tats simples (interface Statement). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387Mthodes utiliser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
Correspondances de types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
SOUTOU Livre Page XIII Vendredi, 25. janvier 2008 1:08 13
-
SQL pour Oracle Table des matires
XIV ditions Eyrolles
Interactions avec la base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390Suppression de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390Ajout denregistrements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391Modification denregistrements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Extraction de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391Curseurs statiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392Curseurs navigables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Curseurs modifiables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397Suppressions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399Modifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400Insertions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Interface ResultSetMetaData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402Interface DatabaseMetaData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403Instructions paramtres (PreparedStatement) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Extraction de donnes (executeQuery). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405Mises jour (executeUpdate) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406Instruction LDD (execute) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Appels de sous-programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407Appel dune fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408Appel dune procdure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409Points de validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
Traitement des exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411Affichage des erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412Traitement des erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
10 Lapproche SQLJ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Blocs SQLJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415Prcompilation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416Affectations (SET) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Intgration de SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418Instructions du LDD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418Instructions du LMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419Requtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 propos des itrateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426Intgration de blocs PL/SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426Points de validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Appels de sous-programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428Rsultats scalaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428Rsultats complexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
SOUTOU Livre Page XIV Vendredi, 25. janvier 2008 1:08 13
-
ditions Eyrolles XV
Table des matires SQL pour Oracle
Traitement des exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431Dfinition des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431Manipulation des donnes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432Interrogation des donnes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
Contextes de connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433SQL dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Expression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
11 Procdures stockes et externes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439Procdures stockes Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Stockage dune procdure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440Interactions avec la base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445Dclencheurs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
Procdures externes Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450Compilation de la classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451Cration dune librairie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451Publication dune procdure externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451Appel dune procdure externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
12 Oracle et le Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453Configuration minimale dApache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453PL/SQL Web Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Dtail dune URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455Paquetages HTP et HTF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456Pose dhyperliens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460Formulaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463Listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
PL/SQL Server Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464Balises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465Chargement dun programme PSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466Appel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466Interaction avec la base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Intgration de PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468Configuration adopte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468API de PHP pour Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471Interactions avec la base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
13 Oracle XML DB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
Comment disposer de XML DB ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
SOUTOU Livre Page XV Vendredi, 25. janvier 2008 1:08 13
-
SQL pour Oracle Table des matires
XVI ditions Eyrolles
Le type de donnes XMLType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488Modes de stockage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
Stockages XMLType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490Cration dune table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491Rpertoire de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493Grammaire XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493Annotation de la grammaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494Enregistrement de la grammaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496Stockage structur (object-relational) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498Stockage non structur (CLOB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511Stockage non structur (binary XML) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
Autres fonctionnalits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516Gnration de contenus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516Vues XMLType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517Gnration de grammaires annotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520Dictionnaire des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
XML DB Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524Interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524Paquetage XML_XDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527Accs par SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
Annexe : Bibliographie et webographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
SOUTOU Livre Page XVI Vendredi, 25. janvier 2008 1:08 13
-
ditions Eyrolles XVII
Remerciements
Merci Agns Labat, Thierry Millan, Gratien Viel et Olivier Teste qui ont contribu llabo-ration de la premire dition de cet ouvrage en 2005.
SOUTOU Livre Page XVII Vendredi, 25. janvier 2008 1:08 13
-
SOUTOU Livre Page XVIII Vendredi, 25. janvier 2008 1:08 13
-
ditions Eyrolles XIX
Avant-propos
Nombre douvrages traitent de SQL et dOracle ; certains rsultent dune traduction hasar-deuse et sans vocation pdagogique, dautres ressemblent des annuaires tlphoniques. Lessurvivants, bien quintressants, ne sont quant eux plus vraiment jour.Ce livre a t rdig avec une volont de concision et de progression dans sa dmarche ; il estillustr par ailleurs de nombreux exemples et figures. Bien que notre source principale dinfor-mations ft la documentation en ligne dOracle, louvrage ne constitue pas, mon sens, unsimple condens de commandes SQL. Chaque notion importante est introduite par un exemplefacile et dmonstratif (du moins je lespre). la fin de chaque chapitre, des exercices vouspermettront de tester vos connaissances.La documentation dOracle 11g reprsente plus de 1 Go de fichiers HTML et PDF (soitplusieurs dizaines de milliers de pages) ! Ainsi, il est vain de vouloir expliquer tous lesconcepts, mme si cet ouvrage ressemblait un annuaire. Jai tent dextraire les aspectsfondamentaux sous la forme dune synthse. Ce livre rsulte de mon exprience denseigne-ment dans des cursus dinformatique vocation professionnelle (IUT et Master Pro).Cet ouvrage sadresse principalement aux novices dsireux de dcouvrir SQL et de program-mer sous Oracle. Les tudiants trouveront des exemples pdagogiques pour chaque concept abord, ainsi
que des exercices thmatiques. Les dveloppeurs C, C++, PHP ou Java dcouvriront des moyens de stocker leurs donnes. Les professionnels connaissant dj Oracle seront intresss par certaines nouvelles
directives du langage.Cette troisime dition ajoute la prcdente les nouvelles fonctionnalits de la version 11gen ce qui concerne SQL, PL/SQL ainsi que la prsentation de XML DB, loutil dOracle quigre (stockage, mise jour et extraction) du contenu XML.
Guide de lecture
Ce livre sorganise autour de trois parties distinctes mais complmentaires. La premire int-ressera le lecteur novice en la matire, car elle concerne les instructions SQL et les notions de
SOUTOU Livre Page XIX Vendredi, 25. janvier 2008 1:08 13
-
SQL pour Oracle
XX ditions Eyrolles
base dOracle. La deuxime partie dcrit la programmation avec le langage procduraldOracle PL/SQL. La troisime partie attirera lattention des programmeurs qui envisagentdutiliser Oracle tout en programmant avec des langages volus (C, C++, PHP ou Java) ouvia des interfaces Web.
Premire partie : SQL de baseCette partie prsente les diffrents aspects du langage SQL dOracle en tudiant en dtail lesinstructions lmentaires. partir dexemples simples et progressifs, nous expliquons notam-ment comment dclarer, manipuler, faire voluer et interroger des tables avec leurs diffrentescaractristiques et lments associs (contraintes, index, vues, squences). Nous tudionsaussi SQL dans un contexte multi-utilisateur (droits daccs), et au niveau du dictionnaire dedonnes.
Deuxime partie : PL/SQLCette partie dcrit les caractristiques du langage procdural PL/SQL dOracle. Le chapitre 6aborde des lments de base (structure dun programme, variables, structures de contrle, inter-actions avec la base, transactions). Le chapitre 7 traite des sous-programmes, des curseurs, dela gestion des exceptions, des dclencheurs et de lutilisation du SQL dynamique.
Troisime partie : SQL avancCette partie intressera les programmeurs qui envisagent dexploiter une base Oracle en utili-sant un langage de troisime ou quatrime gnration (C, C++ ou Java), ou en employant uneinterface Web. Le chapitre 8 est consacr ltude des mcanismes de base du prcompilateurdOracle Pro*C/C++. Le chapitre 9 prsente les principales fonctionnalits de lAPI JDBC.Le chapitre 10 dcrit la technologie SQLJ (norme ISO) qui permet dintgrer du code SQLdans un programme Java. Le chapitre 11 traite des procdures stockes et des procduresexternes. Le chapitre 12 est consacr aux techniques quOracle propose pour interfacer unebase de donnes sur le Web (PL/SQL Web Toolkit et PSP PL/SQL Server Pages) ainsi quelAPI PHP. Enfin, le chapitre 13 prsente les fonctionnalits de XML DB et lenvironnementXML DB Repository.
Annexe : bibliographie et webographieVous trouverez en annexe une bibliographie consacre Oracle ainsi que de nombreux sitesWeb que jai jugs intressants de mentionner ici.
SOUTOU Livre Page XX Vendredi, 25. janvier 2008 1:08 13
-
ditions Eyrolles XXI
Avant-propos
Conventions dcriture
La police courrier est utilise pour souligner les instructions SQL, noms de types, tables,contraintes, etc. (exemple : SELECT nom FROM Pilote).Les majuscules sont employes pour les directives SQL, et les minuscules pour les autreslments. Les noms des tables, index, vues, fonctions, procdures, etc., sont prcds dunemajuscule (exemple : la table CompagnieAerienne contient la colonne nomComp).Les termes dOracle (bien souvent traduits littralement de langlais) sont nots en italique(exemple : row, trigger, table, column, etc.).Dans une instruction SQL, les symboles { et } dsignent une liste dlments, et lesymbole | un choix (exemple : CREATE { TABLE | VIEW }. Les symboles [ et ] prcisent le caractre optionnel dune directive au sein dune commande (exemple : CREATETABLE Avion () [ORGANISATION INDEX];).
Ce pictogramme introduit une dfinition, un concept ou une remarque importante. Il apparatsoit dans une partie thorique, soit dans une partie technique, pour souligner des instructionsimportantes ou la marche suivre avec SQL.
Ce pictogramme annonce soit une impossibilit de mise en uvre dun concept, soit une miseen garde. Il est principalement utilis dans la partie consacre SQL.
Ce pictogramme indique que le code source est tlchargeable partir du site des ditionsEyrolles (www.editions-eyrolles.com).
Ce pictogramme indique une astuce ou un conseil personnel.
Contact avec lauteur et site Web
Si vous avez des remarques formuler sur le contenu de cet ouvrage, nhsitez pas mcrire(soutou@iut-blagnac.fr). Par ailleurs, il existe un site daccompagnement qui contientles errata, complments ainsi que le code des exemples et le corrig de tous les exercices(www.editions-eyrolles.com).
Web
SOUTOU Livre Page XXI Vendredi, 25. janvier 2008 1:08 13
-
SOUTOU Livre Page XXII Vendredi, 25. janvier 2008 1:08 13
-
ditions Eyrolles 1
Introduction
Cette introduction prsente tout dabord le cadre gnral dans lequel cet ouvrage se positionne(SQL, le modle de donnes et loffre dOracle). Viennent ensuite les procdures dinstallationdes diffrentes ditions dOracle pour Windows actuellement sur le march (9i, 10g ExpressEdition, 10g et 11g). Enfin, lutilisation des interfaces de commandes est aborde pour quevous puissiez programmer avec SQL ds le chapitre 1.
SQL, une norme, un succs
Cest IBM, tout seigneur tout honneur, qui, avec System-R, a implant le modle relationnelau travers du langage SEQUEL (Stuctured English as QUEry Language) rebaptis par la suiteSQL (Structured Query Language).La premire norme (SQL1) date de 1987. Elle tait le rsultat de compromis entre construc-teurs, mais fortement influence par le dialecte dIBM. SQL2 a t normalise en 1992. Elledfinit quatre niveaux de conformit : le niveau dentre (entry level), les niveaux intermdiai-res (transitional et intermediate levels) et le niveau suprieur (full level). Les langages SQLdes principaux diteurs sont tous conformes au premier niveau et ont beaucoup de caractris-tiques relevant des niveaux suprieurs. La norme SQL3 (intitule initialement SQL:1999)comporte de nombreuses parties : concepts objets, entrepts de donnes, sries temporelles,accs des sources non SQL, rplication des donnes, etc. (chaque partie tant nomme ISO/IEC 9075-i:2003, i allant de 1 13). La plus rcente partie de la norme de 2006 (ISO/IEC9075-14:2006) est consacr XML.Le succs que connaissent les grands diteurs de SGBD relationnels (IBM, Oracle, Microsoft,Sybase et Computer Associates) a plusieurs origines et repose notamment sur SQL : Le langage est une norme depuis 1986 qui senrichit au fil du temps. SQL peut sinterfacer avec des langages de troisime gnration comme C ou Cobol, mais
aussi avec des langages plus volus comme C++ et Java. Certains considrent ainsi que lelangage SQL nest pas assez complet (le dialogue entre la base et linterface nest pasdirect) et la littrature parle de dfaut dimpdance (impedance mismatch).
Les SGBD rendent indpendants programmes et donnes (la modification dune structure dedonnes nentrane pas forcment une importante refonte des programmes dapplication).
Ces systmes sont bien adapts aux grandes applications informatiques de gestion (archi-tectures type client-serveur et Internet) et ont acquis une maturit sur le plan de la fiabilitet des performances.
SOUTOU Livre Page 1 Vendredi, 25. janvier 2008 1:08 13
-
SQL pour Oracle
2 ditions Eyrolles
Ils intgrent des outils de dveloppement comme les prcompilateurs, les gnrateurs decode, dtats et de formulaires.
Ils offrent la possibilit de stocker des informations non structures (comme le texte,limage, etc.) dans des champs appels LOB (Large Object Binary).
Les principaux SGBD Open Source (MySQL, Firebird, Berkeley DB, PostgreSQL) ont adop-ts depuis longtemps SQL pour ne pas rester en marge.Nous tudierons les principales instructions SQL dOracle qui sont classifies dans le tableausuivant.
Modle de donnes
Le modle de donnes relationnel repose sur une thorie rigoureuse bien quadoptant des prin-cipes simples. La table relationnelle (relational table) est la structure de donnes de base quicontient des enregistrements, galement appels lignes (rows). Une table est compose decolonnes (columns) qui dcrivent les enregistrements.
Tables et donnesConsidrons la figure suivante qui prsente deux tables relationnelles permettant de stockerdes compagnies, des pilotes et le fait quun pilote soit embauch par une compagnie :
Tableau I-1 Classification des ordres SQL
Ordres SQL Aspect du langageCREATE ALTER DROP COMMENT RENAME TRUNCATE Dfinition des donnes (LDD)INSERT UPDATE DELETE MERGE LOCK TABLE Manipulation des donnes (LMD)SELECT Interrogation des donnes (LID)GRANT REVOKE COMMIT ROLLBACK SAVEPOINT SET TRANSACTION
Contrle des donnes (LCD)
Figure I-1 Deux tables
SOUTOU Livre Page 2 Vendredi, 25. janvier 2008 1:08 13
-
ditions Eyrolles 3
Introduction
Les cls
La cl primaire (primary key) dune table est lensemble minimal de colonnes qui permetdidentifier de manire unique chaque enregistrement.
Dans la figure prcdente, les colonnes cls primaires sont notes en gras. La colonnecomp reprsente le code de la compagnie et la colonne brevet dcrit le numro du brevet.
Une cl est dite candidate (candidate key) si elle peut se substituer la cl primaire toutinstant. Une table peut contenir plusieurs cls candidates ou aucune.
Dans notre exemple, les colonnes nomComp et nom peuvent tre des cls candidates si onsuppose quaucun homonyme nest permis.
Une cl trangre (foreign key) rfrence dans la majorit des cas une cl primaire dune autretable (sinon une cl candidate sur laquelle un index unique aura t dfini). Une cl trangreest compose dune ou plusieurs colonnes. Une table peut contenir plusieurs cls trangresou aucune.
La colonne compa (note en italique dans la figure) est une cl trangre, car elle permet derfrencer un enregistrement unique de la table Compagnie via la cl primaire comp.Le modle relationnel est ainsi fondamentalement bas sur les valeurs. Les associations entretables sont toujours binaires et assures par les cls trangres. Les thoriciens considrentcelles-ci comme des pointeurs logiques. Les cls primaires et trangres seront dfinies dansles tables en SQL laide de contraintes.
Oracle
Il sera trs difficile, pour ne pas dire impossible, un autre diteur de logiciels de trouver unnom mieux adapt la gestion des donnes que celui d Oracle . Ce nom semble prdestin cet usage ; citons Le Petit Larousse :
ORACLE n.m. (lat. oraculum) ANTIQ. Rponse dune divinit au fidle qui la consultait ;divinit qui rendait cette rponse ; sanctuaire o cette rponse tait rendue. LITT. Dcisionjuge infaillible et manant dune personne de grande autorit ; personne considrecomme infaillible.
Oracle reprsenterait ainsi la fois une rponse infaillible, un lieu o serait rendue cetterponse et une divinit. Rien que a ! Tout cela peut tre en partie vrifi si votre conceptionest bien faite, vos donnes insres cohrentes, vos requtes et programmes bien crits.
SOUTOU Livre Page 3 Vendredi, 25. janvier 2008 1:08 13
-
SQL pour Oracle
4 ditions Eyrolles
Ajoutons aussi le fait que les ordinateurs fonctionnent bien et quune personne comptente setrouve au support. Cest tout le mal que nous vous souhaitons.Oracle Corporation, socit amricaine situe en Californie, dveloppe et commercialise unSGBD et un ensemble de produits de dveloppement. Oracle a des filiales dans un grandnombre de pays. La filiale franaise (Oracle France) a t cre en 1986, elle est compose decinq dpartements (marketing, commercial, avant-vente, conseil et formation).
Un peu dhistoireEn 1977, Larry Ellison, Bob Miner et Ed Oates fondent la socit Software DevelopmentLaboratories (SDL). Larticle de Edgar Frank Codd (1923-2003), A Relational Model ofData for Large Shared Data Banks , Communications of the ACM paru en 1970, fait devenirle mathmaticien et ancien pilote de la RAF durant la Seconde Guerre mondiale, inventeur dumodle relationnel et de SQL. Les associs de SDL devinent le potentiel des concepts de Coddet se lancent dans laventure en baptisant leur logiciel Oracle . En 1979, SDL devient Rela-tional Software Inc. (RSI) qui donnera naisssance la socit Oracle Corp. en 1983. Lapremire version du SGBD sappelle RSI-1 et utilise SQL. Le tableau suivant rsume la chro-nologie des versions.
Avec IBM, Oracle a fait un pas vers lobjet en 1997, mais cette approche ne compte toujourspas parmi les priorits des clients dOracle. Lditeur met plus en avant ses aspects transac-tionnels, dcisionnels, de partitionnement et de rplication. Les technologies lies Java, bien
Tableau I-2 Chronologie des versions dOracle
1979 Oracle 2 Premire version commerciale crite en C/assembleur pour Digital pas de mode transactionnel.
1983 Oracle 3 Rcrit en C - verrous.1984 Oracle 4 Portage sur IBM/VM, MVS, PC transaction (lecture consistante).1986 Oracle 5 Architecture client-serveur avec SQL*Net version pour Apple.1988 Oracle 6 Verrouillage niveau ligne sauvegarde/restauration AGL PL/SQL.1991 Oracle 6.1 Parallel Server sur DEC.1992 Oracle 7 Contraintes rfrentielles procdures catalogues dclencheurs version
Windows en 1995.1994 Serveur de donnes vido.1995 Connexions sur le Web.1997 Oracle 8 Objet-relationnel partitionnement LOB Java.1998 Oracle 8i i comme Internet, SQLJ Linux XML.2001 Oracle9i Services Web serveur dapplications architectures sans fil.2004 Oracle10g g comme Grid computing (ressources en clusters).2007 Oracle11g Auto-configuration.
SOUTOU Livre Page 4 Vendredi, 25. janvier 2008 1:08 13
-
ditions Eyrolles 5
Introduction
quelles soient largement prsentes sous Oracle9i, ne constituent pas non plus la majeurepartie des applicatifs exploits par les clients dOracle.La version 10g renforce le partage et la coordination des serveurs en quilibrant les chargesafin de mettre disposition des ressources rparties (rpond au concept de linformatique lademande). Cette ide est dj connue sous le nom de mise en grappe des serveurs (cluste-ring). Une partie des fonctions majeures de la version 10g est prsente dans la version 9i RAC(Real Application Cluster).La version 11g Oracle insiste sur les capacits dauto-diagnostic, dauto-administration etd'auto-configuration pour optimiser la gestion de la mmoire et pour pouvoir faire remonterdes alertes de dysfonctionnement. En raison des exigences en matire de traabilit et du dsir decapacit de dcision (datamining), la quantit de donnes gres par les SGBD triplant tous les deuxans, 11g met aussi laccent sur la capacit optimiser le stockage.
Offre du moment
Leader du march des SGBD relationnels, Oracle disposait dune part comprise entre 44 %(source IDC) et 47 % (source Gartner) en 2006, contre environ 21 % pour IBM et 18 % pourMicrosoft. Oracle devrait tre bien arm en 2008 (anne probable de la Release 2 de la version 11g)face SQL Server 2008 de Microsoft, un des rares SGBD lui grignoter des parts de march.Face la monte en puissance des SGBD Open Source, fin 2005, Oracle (puis IBM, Sybase etMicrosoft avec SQL Server 2005 Express) ragit en proposant le premier, une version gratuitedu SGBD (Oracle 10g Express Edition) mais bride en nombre de processeurs, denregistrements(4 Go) et despace mmoire (1 Go). Aucun diteur ne veut tre absent du march trs importantdes PME, sensible aux cots et particulirement rceptif aux promesses de lOpen Source. La figure suivante schmatise les produits dOracle qui se positionnent autour du serveur dedonnes (SGBD) :
Figure I-2 Offre Oracle
SOUTOU Livre Page 5 Vendredi, 25. janvier 2008 1:08 13
-
SQL pour Oracle
6 ditions Eyrolles
Le langage SQL est utilis explicitement par toute personne (ou par un outil) travaillant sur labase de donnes (administrateur, dveloppeur, utilisateur). Le langage PL/SQL est le langageprocdural dOracle. Il permet dincorporer nativement tout ordre SQL dans un programme.Les interfaces SQL*Plus sont le moyen minimal (plutt spartiate mais efficace) pour seconnecter et travailler avec la base. Le middleware OracleNet permet dinterconnecter desbases Oracle distantes entre elles ainsi que des bases non Oracle.Les prcompilateurs permettent dintgrer SQL dans des programmes C, Fortran, COBOL,C++, etc. Linterface OCI (Oracle Call Interface) permet daccder la base de donnes partir de langages de troisime gnration via des primitives de bas niveau.Les produits Designer, Forms et Reports sont des outils daide la conception et de crationdapplications interactives ou dtats de tous types (crans, rapports, batchs gnrs en PL/SQL, HTML ou VB).Les produits Developer et JDeveloper sont des outils de dveloppement dapplications client-serveur ou Internet-intranet.Les produits Discoverer et Express sont spcialiss dans la gestion des info centres et desentrepts de donnes (datawarehouses). Les utilisateurs ont la possibilit dinterroger la baseen construisant graphiquement des requtes.Lintgration dune machine virtuelle Java rebaptise Jserver sous Oracle8i dmontre lavolont dOracle dinclure largement Java dans son offre. Oracle a ajout par la suite un ORB(Object Request Broker) son moteur pour souvrir au protocole IIOP (Inter Object RequestBroker) et supporter les composants EJB (Enterprise Java Beans). Le serveur Apache, inclusdepuis peu au moteur dOracle, permet de programmer des applets, servlets ou des JSP (JavaServer Pages). Enfin, le moteur accepte de conserver et de compiler des procdures stockescodes non plus en PL/SQL mais en Java.Oracle offre galement des outils dadministration en mode graphique. Les plus connuspermettant dexporter et dimporter des donnes, de charger une base partir de fichiers exter-nes (SQL*Loader), de configurer les couches rseaux (Net Manager et Net ConfigurationAssistant). La console principale se nomme Oracle Enterprise Manager. Elle permet dadmi-nistrer graphiquement une ou plusieurs bases de donnes locales ou distantes.Oracle est compos de plusieurs domaines, cet ouvrage concerne simplement une infimepartie du serveur de donnes.
Serveur de donnes (la base)Oracle Database est disponible en plusieurs versions qualifies de Standard ou Enterprise . Le nom du produit monoposte pour Windows ou Linux est Personal Oracle.Plusieurs options permettent de renforcer les performances, la scurit, le traitement transac-tionnel et le datawarehouse. Citons Oracle Data Guard, Oracle Real Application Clusters,Oracle Partitioning, Oracle Advanced Security, Oracle Label Security, Oracle DiagnosticsPack, Oracle Tuning Pack, Oracle OLAP, Oracle Data Mining, Oracle Spatial.
SOUTOU Livre Page 6 Vendredi, 25. janvier 2008 1:08 13
-
ditions Eyrolles 7
Introduction
Serveur dapplicationsOracle Application Server est un des serveurs dapplications compatible J2EE les pluscomplets et intgrs du march. OracleAS regroupe des composants divers : serveur HTTP,portail (Portal), fonctions vocales et sans fil (Wireless), mise en cache des pages Web, etc.
Outils de dveloppementLes outils sont regroups dans une offre appele Developer Suite comprenant pour la partieApplication Developement : JDeveloper, Forms Developer (outil RAD pour PL/SQL), Desi-gner (conception et maintenance de schmas), Software Configuration Manager. La partieBusiness Intelligence inclut : Warehouse Builder, Reports Developer, Discoverer et BusinessIntelligence Beans.
Suite Bureautique (Collaboration Suite)Cette offre est compose de Oracle Email, Oracle Voicemail & Fax, Oracle Calendar, OracleFiles Management, Oracle Ultra Search, Oracle Wireless & Voice. Cette offre permet dutili-ser une seule bote de rception pour tous messages lectroniques, vocaux et tlcopies, etlaccs aux messages partir de clients du march, de navigateurs Web, de tlphones oudassistants numriques personnels.
Suites E-BusinessLoffre E-Business Suite est un progiciel de gestion intgr (ensemble dapplications dentre-prise pour grer les clients, produits, commandes, crances, etc.). La suite E-Business SuiteSpecial Edition est ddie aux PME et permet de prconfigurer E-Business Suite par une tech-nologie Web.
Externalisation (Applications Outsourcing)Ce produit est relatif au transfert Oracle de la gestion des applications dune entreprise (infogrance). Il est compos de E-Business Suite, Oracle Small Business Suite, iLearning,Exchange. Des services complets de gestion, de bases de donnes et de matriel sont proposspour rduire les cots de maintenance.
DiversOracle fournit enfin un service de support, de conseil (Oracle Consulting), de formation(Oracle University) et de financement (Oracle Financing).
Notion de schma
Un schma est un ensemble comprenant des structures de donnes et des donnes. Il appar-tient un utilisateur de la base et porte le nom de ce dernier. Chaque utilisateur possde ainsi
SOUTOU Livre Page 7 Vendredi, 25. janvier 2008 1:08 13
-
SQL pour Oracle
8 ditions Eyrolles
son propre schma. Leurs lments (Oracle les nomme dune manire gnrique objects) sontcrs et modifis par des ordres SQL.La figure suivante illustre deux utilisateurs travaillant sur leur schma (stock dans un espacede la base) par une interface qui peut tre SQL*Plus (dans la majeure partie des enseigne-ments), ou un langage de programmation citons principalement C, COBOL, C++ ou Java.
Tous les lments dun schma ne seront pas tudis car certains sont trs spcifiques etsortent du cadre traditionnel de lenseignement. Le tableau suivant indique dans quel chapitredu livre les principaux lments dun schma sont tudis :
Accs Oracle depuis WindowsUne fois que vous aurez install Oracle sur votre ordinateur, vous serez libre de choisir laccsqui vous convient. Ce livre utilise essentiellement les interfaces SQL*Plus de lditeur, maisaussi Java via JDBC, le Web au travers des techniques dcrites au chapitre 12 et XML avecXML DB.
Figure I-3 Notion de schma Oracle
Tableau I-3 lments dun schma Oracle
lments tudis Chapitre Aspects non tudisDclencheurs (triggers) 7Fonctions, procdures et paquetages 7Librairies de procdures externes 11Index 1Ressources Java 9, 10, 11Squences et synonymes 2, 5Tables et tables en index 1Vues (views) 5XML 13
ClustersDimensionsLiens de bases de donnes (database links)OprateursTables, types et vues objetsVues matrialises (anciennement clichs )
SOUTOU Livre Page 8 Vendredi, 25. janvier 2008 1:08 13
-
ditions Eyrolles 9
Introduction
Il existe dautres acccs possibles, citons Office (Word, Excel, Powerpoint, Access), VisualStudio, Active Server Pages (ASP) et les environnements .NET. Les passerelles employessappellent ODBC, Oracle OLE DB, Oracle Objects for OLE (OO4O), ActiveX Data Objects(ADO), Oracle Call Interface (OCI), ODBC .NET, Oracle OLE DB .NET, Oracle DataProvider for .NET.
Dtail dun numro de versionDtaillons la signification du numro de la version 11.1.0.6.0 (premire release de la 11gdisponible sous Windows) : 11 dsigne le numro de la version majeure de la base ; 1 dsigne le numro de version de la maintenance ; 0 dsigne le numro de version du serveur dapplications ; 6 dsigne le numro de version du composant (patch); 0 est le numro de la version de la plate-forme.Pour contrler la version du serveur sur lequel vous tes connect et celle des outils prsentssur votre poste, excutez le script suivant dans une interface SQL*Plus :COL PRODUCT FORMAT A35COL VERSION FORMAT A15COL STATUS FORMAT A15SELECT * FROM PRODUCT_COMPONENT_VERSION;
Installation dOracle
Rendez-vous prsent sur le site dOracle o vous devrez dabord vous enregistrer (
top related