Exemple create clob
| Fiche express | |
|---|---|
| Type | Script SQL*Plus d'exemple |
| Rôle | Création d'une table avec colonnes CLOB |
| Voir aussi | Lob dump clob · Lob fragmentation user |
Exemple create clob illustre la création d'une table contenant plusieurs colonnes de type CLOB, avec un stockage LOB dédié (tablespace et index de segment LOB séparés de la table elle-même).
Le titre de cette page est resté en français dans la bibliothèque source, alors que les scripts voisins de type « Example... » sont en anglais — c'est une incohérence historique de nommage conservée telle quelle lors de la migration.
Script
DROP TABLE xml_documents;
CREATE TABLE xml_documents (
docname VARCHAR2(200)
, xmldoc CLOB
, log CLOB
, timestamp DATE
)
LOB (xmldoc) STORE AS xml_documents_lob (
TABLESPACE lob_data
STORAGE (INITIAL 1M NEXT 1M PCTINCREASE 0 MAXEXTENTS UNLIMITED)
INDEX xml_documents_lob_idx
)
LOB (log) STORE AS xml_log_lob (
TABLESPACE lob_data
STORAGE (INITIAL 1M NEXT 1M PCTINCREASE 0 MAXEXTENTS UNLIMITED)
INDEX xml_log_lob_idx
)
TABLESPACE users
STORAGE (
INITIAL 256K
NEXT 256K
MINEXTENTS 1
MAXEXTENTS 121
PCTINCREASE 0
);
Chaque colonne CLOB (xmldoc, log) reçoit sa propre clause LOB ... STORE AS, avec son propre segment de données (xml_documents_lob, xml_log_lob) et son propre index de LOB (xml_documents_lob_idx, xml_log_lob_idx) — isoler les LOB volumineux du tablespace de la table (ici users) évite qu'ils ne fragmentent son stockage et permet de les sauvegarder/dimensionner indépendamment.
Depuis Oracle8i, la clause INDEX ne sert plus qu'à nommer le segment d'index du LOB : contrairement à Oracle8, toute clause de tablespace ou de stockage placée à l'intérieur du bloc INDEX est ignorée. Le tablespace de l'index de LOB suit systématiquement celui du segment de données LOB déclaré juste au-dessus.
Voir aussi
- Lob dump clob — extraire le contenu d'une colonne CLOB ainsi créée
- Lob fragmentation user — surveiller la fragmentation du segment LOB dans le temps