Oracle Application Express, utilisation de SQL
Workshop, création de nouvelles tables
RCI Informatique, Septembre 2006
1 - Objectif
On souhaite créer, en mode navigateur HTML, plusieurs nouvelles tables Oracle.
Choisissons un exemple classique. Un table Societes et une table Personnes.
Les Personnes appartiennent à une société.
Chaque table comporte une clé "primaire", numérique, qui sera alimentée par une
"séquence" Oracle.
On définira un "déclencheur" (trigger) dont le rôle sera, juste avant une
insertion de nouvelle lignes, dans la table Societes ou la table Personnes,
d'utiliser la séquence pour affecter le nouveau numéro de ligne dans la table.
2 - Création de la table SOCIETES
- Accéder à SQL Workshop, ceci est le menu général de SQL Workshop :

- Cliquer sur le lien "Navigateur d'objet". La liste des tables déjà existantes est affichée. Cliquez sur le bouton "Créer".
- La première étape de l'assistant propose de choisir le type d'objet à créer, sélectionner "Table" :

- Décrire dans le formulaire les différentes colonnes souhaitées (numéro, intitulé de la société, code postal et ville), puis passer à l'étape suivante de l'assistant, en cliquant sur "Suivant >":

- Indiquer la rubrique qui sera la clé primaire, et demander que
les clés primaires soient générées à partir d'une nouvelle séquence.
Le nom de la nouvelle séquence sera SOCIETES_SEQ :
- Ensuite des dialogues demandent si l'on souhaite définir les
"clés étrangères", ou des "contraintes". On n'utilisera pas, pour
l'instant, ces deux options
Cliquer sur "suivant", puis sur "Fin"..
Par exemple, une table de Personnes va
"pointer" sur la table des Sociétés.
Ou bien la table des sociétés pourrait comporter une rubrique "est filiale de",
qui pointerait sur une autre société.
Le dialogue "clés étrangères" est destiné à spécifier ce type de
caractéristique, ce qui permet, ensuite, à l'assistant d'en déduire des
"contraintes" d'intégrité des données entre tables différentes.
- Indiquer enfin que l'on souhaite créer cette table :

- SQL Workshop va préparer un script, qui sera automatiquement
exécuté.
Le script commence par créer la nouvelle table, puis créer une nouvelle
séquence, et enfin créer un déclencheur (trigger) qui a chaque ordre de type
"INSERT", affecte automatiquement la valeur suivante de la séquence.
Voici le script qui a est automatiquement généré, puis exécuté :
CREATE SEQUENCE "SOCIETES_SEQ" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE /
CREATE TABLE "SOCIETES"
( "STE_NUM" NUMBER,
"STE_LIB" VARCHAR2(100),
"STE_CP" VARCHAR2(5),
"STE_VILLE" VARCHAR2(60),
CONSTRAINT "SOCIETES_PK" PRIMARY KEY ("STE_NUM") ENABLE
)
/
CREATE OR REPLACE TRIGGER "BI_SOCIETES"
before insert on "SOCIETES"
for each row
begin
if :NEW."STE_NUM" is null then
select "SOCIETES_SEQ".nextval into :NEW."STE_NUM" from dual;
end if;
end;
/
ALTER TRIGGER "BI_SOCIETES" ENABLE
/
- On peut visualiser dans le SQL Workshop, le détail de ce nouvel objet de type "Table":

3 - Création de la table
PERSONNES
- On procédera comme pour la table SOCIETES.
Une rubrique numérique, servira à indiquer pour chaque personne, le numéro de la
société à laquelle cette personne appartient :

Une fois ces tables, créées, on va pouvoir mettre en oeuvre les assistants de Oracle Application Express, pour y importer des données issues par exemple d'Excel, ou d'un gestionnaire de données capable d'exporter en format CSV, puis pour créer pages et applications interactives pour Internet.
Revenir au
sommaire Application Express

Tous droits réservés, RCI Informatique SA, 2004-2006
rci@wanadoo.fr
www.rci-informatique.fr