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