L'Informatique
HTML |  Javascript |  DOM |  PHP |  PHP-MySql |  Sessions en PHP |  JSP |  TomCat |  ASP
Java |  C |  C# | 
SQL |  Oracle |  PL/SQL |  les index |  Données multimédia : les LOBs |  Intermedia Text |  projet ORDVideo & Java
BMP |  PBM |  PGM |  PPM | 
UML |  Diagramme Use Case |  Diagramme de classes | 
Liens informatique |  Autres Liens | 

Recherche personnalisée

Oracle







Oracle est un système de gestion de bases de données (SGBD).
Il ne faut pas le confondre avec une base de données, qu'Oracle crée et gère.




Il ne faut surtout pas créer de table de nom DATE. Oracle acceptera de la créer, mais il vous sera impossible de la supprimer !

COMMIT : termine la transaction. Les données qui viennent d'être ajoutées, modifiées ou supprimées sont définitivement enregistrées.
ROLLBACK : annule la transaction. A l'inverse du COMMIT, toutes les données sont remises telles qu'elles étaient au dernier COMMIT ou à l'ouverture de la base.

Pour tout ce qui concerne la création des tables et la manipulation des données, voir la partie SQL.
Voir aussi la partie PL/SQL.


données multimédia : les LOBs
Recherche sur des chaînes de caractères : Intermediatext
Mon projet complet avec ORDVideo & Java (+ de 2500 lignes de code)


Comment afficher correctement le résultat d'un select ?
Il est souvent nécessaire pour des requêtes SQL de définir des paramètres d'affichage,  car pour des tables "larges" on ne comprend pas bien l'affichage. Dans SqlPlus, ou un logiciel de ce type, il faut entrer les commandes suivantes:

SET PAGESIZE 30
SET LINESIZE 120

C'est un exemple qui propose 30 lignes avant de rafficher le nom des colonnes et 120 caractères par ligne.
SGBD oracle



Comment simuler une incrémentation automatique ?
Oracle n'offre pas par défaut la possibilité d'effectuer une d'auto-incrémentation sur un champ. Voyons comment réaliser cela sur une table MaTable :

1) tout d'abord, créons une séquence qui nous permet de définir les valeurs que prendra notre attribut.

CREATE SEQUENCE SEQ_MaTable
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1;

Notre attribut commencera à 1 et s'incrémentera de 1 à chaque nouvelle insertion. Mais pour l'instant rien n'est fait automatiquement.
Un trigger se charge d'avancer dans la séquence. C'est une procédure appelée par Oracle lui-même par exemple lors d'une modification d'une table. Pour nous, ce sera lors de l'ajout d'une nouvelle valeur.

CREATE OR REPLACE TRIGGER TR_MaTable
BEFORE INSERT ON PRET
FOR EACH ROW WHEN (NEW.id_MaTable IS NULL)
BEGIN
     SELECT SEQ_MaTable.NEXTVAL INTO :NEW.id_MaTable FROM DUAL;
END TR_MaTable;


Principe :
Avant toute insertion dans notre table, si on précise la valeur null pour l'attribut id_MaTable, alors le trigger met la prochaine valeur de la séquence à la place de ce null, donc on a bien une auto-incrémentation.


Romain C