8 Copyright © Oracle Corporation, 2001. Tous droits réservés. Manipuler des objets de grande taille.

Slides:



Advertisements
Présentations similaires
Présentation du Stage en Entreprise
Advertisements

PL/SQL : Le Langage PL/SQL est une extension du SQL, qui offre
Portée des variables VBA & Excel
Oracle: OO.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
T ECHNOLOGIES O RACLE Création et gestion des objets © sebvita.com.
Les fonctions.
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
LMD: Langage de Manipulation de Données
Développement d’applications web
Contrôles d'accès aux données
10 Copyright © Oracle Corporation, Tous droits réservés. Autres concepts relatifs aux déclencheurs.
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Gérer les tablespaces et les fichiers de données
Initiation aux bases de données et à la programmation événementielle
Ecole Supérieure Privée de ingénierie et de technologie année universitaire :2013/2014 Cross-Plateform Cours JavaScript.
T ECHNOLOGIES O RACLE Manipulation des données © sebvita.com.
L’utilisation des bases de données
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Gestion des erreurs Packages ©Alain Villeneuve, 1999
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
IFT 6800 Atelier en Technologies d’information
Création de bases de données
COURS DE PROGRAMMATION ORIENTEE OBJET :
PL/SQL Noreddine GHERABI 1.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Procédures Stockées Schedule: Timing Topic 60 minutes Lecture
Limiter et trier des données
Fonctions monoligne.
Structures des données
Introduction.
Fichiers de données Fichiers de contrôles Fichiers de journalisations Fichiers de paramètres d’initialisation.
 CREATE TABLE  DROP TABLE  ALTER TABLE  INSERT  UPDATE  DELETE  SELECT interrogation 2 Instruction de mise à jour structure.
Gérer la sécurité des mots de passe et les ressources
Slide 1 of 39 Waterside Village Fête ses 20 ans.
LES PILES ET FILES.
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Les Composants de l’architecture Oracle
Créer des déclencheurs de base de données
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
Objectifs A la fin de ce chapitre, vous pourrez : présenter l'utilisation d'opérations de chargement de données par chemin direct décrire l'utilisation.
Gérer les privilèges.
Créer des packages.
Copyright  Oracle Corporation, All rights reserved. 19 Gestion des Privilèges.
Packages fournis par Oracle
Gérer l'instance Oracle
Manipulation des Données
Strings et Tableaux en Java
6 Copyright © Oracle Corporation, Tous droits réservés. Autres concepts relatifs aux packages.
Module 13 : Implémentation de déclencheurs. Vue d'ensemble Présentation des déclencheurs Définition de déclencheurs Exemples de déclencheurs Performances.
Structure de stockage et relations
Gérer les rôles.
1 Copyright © Oracle Corporation, Tous droits réservés. Présentation des sous-programmes PL/SQL.
Les Contraintes.
Gérer les utilisateurs
Révision du langage PL/SQL
Création et Gestion de Tables
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
4 Copyright © Oracle Corporation, Tous droits réservés. Gérer les sous-programmes.
Les vues Une vue: c’est une relation virtuelle. Définie par:
Note: Les nombres écrits en gras renvoie à des leçons entières. Symbole %FOUND 6-13 %ISOPEN 6-13 %NOTFOUND 6-13 %ROWCOUNT 6-13 %ROWTYPE 5, 6-17 %TYPE 1-20.
Les bases de données Séance 8 Jointures.
Le langage SQL.
Nicolas Ribot Introduction aux triggers Nicolas Ribot - Licence GNU FDL - Version 1.1.
Cours n°2 Implémentation et exploitation
Introduction au langage PL/SQL
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
Transcription de la présentation:

8 Copyright © Oracle Corporation, Tous droits réservés. Manipuler des objets de grande taille

8-2 Copyright © Oracle Corporation, Tous droits réservés. Objectifs A la fin de ce chapitre, vous pourrez : comparer et opposer les types de données LONG et LOB créer et gérer des types de données LOB distinguer les LOB internes et externes utiliser le package PL/SQL DBMS_LOB décrire l'utilisation des LOB temporaires

8-3 Copyright © Oracle Corporation, Tous droits réservés. Définition d'un LOB Film ( BFILE ) Photo ( BLOB ) “Four score and seven years ago our fathers brought forth upon this continent, a new nation, conceived in LIBERTY, and dedicated to the proposition that all men are created equal.” Texte ( CLOB ) Les LOB permettent de stocker des données volumineuses non structurées, telles que du texte, des images, des films et du son

8-4 Copyright © Oracle Corporation, Tous droits réservés. Comparaison des types de données LONG et LOB LONG et LONG RAW Une colonne LONG par table 2 Go maximum SELECT renvoie des données Données stockées dans le segment Accès séquentiel aux données LOB Plusieurs colonnes LOB par table 4 Go maximum SELECT renvoie un pointeur Données stockées dans le segment ou à l'extérieur de la table Accès aléatoire aux données

8-5 Copyright © Oracle Corporation, Tous droits réservés. Composition d'un type LOB Pointeur de LOB La colonne LOB conserve un pointeur vers la valeur de LOB Colonne LOB d'une table Valeur de LOB

8-6 Copyright © Oracle Corporation, Tous droits réservés. LOB internes La valeur de LOB est stockée dans la base de données “Four score and seven years ago our fathers brought forth upon this continent, a new nation, conceived in LIBERTY, and dedicated to the proposition that all men are created equal.” CLOB BLOB

8-7 Copyright © Oracle Corporation, Tous droits réservés. Gérer les LOB internes Pour interagir totalement avec les LOB, des interfaces de type fichier sont fournies : –package PL/SQL DBMS_LOB –Oracle Call Interface (OCI) –Oracle Objects pour la liaison et l'incorporation d'objets (OLE) –précompilateurs Pro*C/C++ et Pro*COBOL –JDBC Le serveur Oracle prend en charge la gestion des LOB via SQL Pour interagir totalement avec les LOB, des interfaces de type fichier sont fournies : –package PL/SQL DBMS_LOB –Oracle Call Interface (OCI) –Oracle Objects pour la liaison et l'incorporation d'objets (OLE) –précompilateurs Pro*C/C++ et Pro*COBOL –JDBC Le serveur Oracle prend en charge la gestion des LOB via SQL

8-8 Copyright © Oracle Corporation, Tous droits réservés. Film ( BFILE ) Définition d'un BFILE Le type de données BFILE prend en charge un objet de grande taille externe ou basé sur un fichier ; il peut s'agir : d'un attribut de type d'objet d'une valeur de colonne dans une table

8-9 Copyright © Oracle Corporation, Tous droits réservés. Assurer la sécurité des BFILE Utilisateur Film ( BFILE ) Droits d'accès

8-10 Copyright © Oracle Corporation, Tous droits réservés. Nouvel objet de base de données : DIRECTORY DIRECTORY LOB_PATH = '/oracle/lob/' Utilisateur Film ( BFILE )

8-11 Copyright © Oracle Corporation, Tous droits réservés. Règles de création des objets DIRECTORY Ne pas créer d'objets DIRECTORY dans les chemins d'accès aux fichiers de base de données Le nombre d'utilisateurs disposant des privilèges système suivants doit être limité : –CREATE ANY DIRECTORY –DROP ANY DIRECTORY Tous les objets DIRECTORY appartiennent à SYS Créer des chemins d'accès aux répertoires et définir correctement les droits avant d'utiliser l'objet DIRECTORY, afin que le serveur Oracle puisse lire le fichier Ne pas créer d'objets DIRECTORY dans les chemins d'accès aux fichiers de base de données Le nombre d'utilisateurs disposant des privilèges système suivants doit être limité : –CREATE ANY DIRECTORY –DROP ANY DIRECTORY Tous les objets DIRECTORY appartiennent à SYS Créer des chemins d'accès aux répertoires et définir correctement les droits avant d'utiliser l'objet DIRECTORY, afin que le serveur Oracle puisse lire le fichier

8-12 Copyright © Oracle Corporation, Tous droits réservés. Gérer les BFILE Créer un répertoire du système d'exploitation et y ajouter des fichiers Créer une table Oracle dont l'une des colonnes contient le type de données BFILE Créer un objet DIRECTORY Accorder aux utilisateurs les privilèges permettant de lire l'objet DIRECTORY Insérer des lignes dans la table à l'aide de la fonction BFILENAME Déclarer et initialiser un pointeur de LOB dans un programme Lire le BFILE Créer un répertoire du système d'exploitation et y ajouter des fichiers Créer une table Oracle dont l'une des colonnes contient le type de données BFILE Créer un objet DIRECTORY Accorder aux utilisateurs les privilèges permettant de lire l'objet DIRECTORY Insérer des lignes dans la table à l'aide de la fonction BFILENAME Déclarer et initialiser un pointeur de LOB dans un programme Lire le BFILE

8-13 Copyright © Oracle Corporation, Tous droits réservés. Créer ou modifier une table Oracle dont l'une des colonnes contient le type de données BFILE. Créer un objet DIRECTORY en utilisant la commande CREATE DIRECTORY. Accorder aux utilisateurs les privilèges permettant de lire l'objet DIRECTORY. Créer ou modifier une table Oracle dont l'une des colonnes contient le type de données BFILE. Créer un objet DIRECTORY en utilisant la commande CREATE DIRECTORY. Accorder aux utilisateurs les privilèges permettant de lire l'objet DIRECTORY. ALTER TABLE employees ADD emp_video BFILE; Préparer l'utilisation des BFILE CREATE DIRECTORY dir_name AS os_path; GRANT READ ON DIRECTORY dir_name TO user|role|PUBLIC;

8-14 Copyright © Oracle Corporation, Tous droits réservés. FUNCTION BFILENAME (directory_alias IN VARCHAR2, filename IN VARCHAR2) RETURN BFILE; Fonction BFILENAME Utiliser la fonction BFILENAME pour initialiser une colonne BFILE Utiliser la fonction BFILENAME pour initialiser une colonne BFILE

8-15 Copyright © Oracle Corporation, Tous droits réservés. CREATE OR REPLACE PROCEDURE load_emp_bfile (p_file_loc IN VARCHAR2) IS v_file BFILE; v_filename VARCHAR2(16); CURSOR emp_cursor IS SELECT first_name FROM employees WHERE department_id = 60 FOR UPDATE; BEGIN FOR emp_record IN emp_cursor LOOP v_filename := emp_record.first_name || '.bmp'; v_file := BFILENAME(p_file_loc, v_filename); DBMS_LOB.FILEOPEN(v_file); UPDATE employees SET emp_video = v_file WHERE CURRENT OF emp_cursor; DBMS_OUTPUT.PUT_LINE('LOADED FILE: '||v_filename || ' SIZE: ' || DBMS_LOB.GETLENGTH(v_file)); DBMS_LOB.FILECLOSE(v_file); END LOOP; END load_emp_bfile; / Charger des BFILE

8-16 Copyright © Oracle Corporation, Tous droits réservés. Charger des BFILE Utiliser la fonction DBMS_LOB.FILEEXISTS pour vérifier que le fichier est présent dans le système d'exploitation. La fonction renvoie 0 si le fichier n'existe pas et 1 dans le cas contraire. Utiliser la fonction DBMS_LOB.FILEEXISTS pour vérifier que le fichier est présent dans le système d'exploitation. La fonction renvoie 0 si le fichier n'existe pas et 1 dans le cas contraire. CREATE OR REPLACE PROCEDURE load_emp_bfile (p_file_loc IN VARCHAR2) IS v_file BFILE; v_filename VARCHAR2(16); v_file_exists BOOLEAN; CURSOR emp_cursor IS... BEGIN FOR emp_record IN emp_cursor LOOP v_filename := emp_record.first_name || '.bmp'; v_file := BFILENAME (p_file_loc, v_filename); v_file_exists := (DBMS_LOB.FILEEXISTS(v_file) = 1); IF v_file_exists THEN DBMS_LOB.FILEOPEN (v_file);...

8-17 Copyright © Oracle Corporation, Tous droits réservés. Migrer de LONG vers LOB Le serveur Oracle9 i permet la migration des colonnes LONG vers les colonnes LOB La migration des données consiste à déplacer les tables existantes contenant des colonnes LONG pour permettre l'utilisation des LOB La migration des applications consiste à modifier les applications LONG existantes pour permettre d'utilisation des LOB Le serveur Oracle9 i permet la migration des colonnes LONG vers les colonnes LOB La migration des données consiste à déplacer les tables existantes contenant des colonnes LONG pour permettre l'utilisation des LOB La migration des applications consiste à modifier les applications LONG existantes pour permettre d'utilisation des LOB ALTER TABLE [.] MODIFY ( {CLOB | BLOB | NCLOB}

8-18 Copyright © Oracle Corporation, Tous droits réservés. Migrer de LONG vers LOB Conversion implicite : LONG ( LONG RAW ) ou variable VARCHAR2 ( RAW ) convertie en variable CLOB ( BLOB ), et vice-versa Conversion explicite : –O_CLOB() convertit LONG, VARCHAR2 et CHAR en CLOB –TO_BLOB() convertit LONG RAW et RAW en BLOB Transmission de paramètres de procédure et de fonction –CLOB et BLOB en tant que paramètres réels –VARCHAR2, LONG, RAW et LONG RAW sous forme de paramètres formels, et vice-versa Les données LOB sont compatibles avec la plupart des opérateurs et fonctions intégrées SQL et PL/SQL Conversion implicite : LONG ( LONG RAW ) ou variable VARCHAR2 ( RAW ) convertie en variable CLOB ( BLOB ), et vice-versa Conversion explicite : –O_CLOB() convertit LONG, VARCHAR2 et CHAR en CLOB –TO_BLOB() convertit LONG RAW et RAW en BLOB Transmission de paramètres de procédure et de fonction –CLOB et BLOB en tant que paramètres réels –VARCHAR2, LONG, RAW et LONG RAW sous forme de paramètres formels, et vice-versa Les données LOB sont compatibles avec la plupart des opérateurs et fonctions intégrées SQL et PL/SQL

8-19 Copyright © Oracle Corporation, Tous droits réservés. Package Package DBMS_LOB L'utilisation de LOB nécessite souvent le recours au package DBMS_LOB fourni par Oracle Ce package fournit des sous-programmes permettant d'accéder à des LOB internes et externes et de les manipuler Oracle9 i permet d'extraire directement des données de LOB à l'aide du langage SQL, sans utiliser d'API de LOB particulière En PL/SQL, vous pouvez définir VARCHAR2 pour un CLOB et RAW pour un BLOB L'utilisation de LOB nécessite souvent le recours au package DBMS_LOB fourni par Oracle Ce package fournit des sous-programmes permettant d'accéder à des LOB internes et externes et de les manipuler Oracle9 i permet d'extraire directement des données de LOB à l'aide du langage SQL, sans utiliser d'API de LOB particulière En PL/SQL, vous pouvez définir VARCHAR2 pour un CLOB et RAW pour un BLOB

8-20 Copyright © Oracle Corporation, Tous droits réservés. Pour modifier les valeurs de LOB : APPEND, COPY, ERASE, TRIM, WRITE, LOADFROMFILE Pour lire ou consulter les valeurs de LOB : GETLENGTH, INSTR, READ, SUBSTR Fonctions et procédures propres aux BFILE : FILECLOSE, FILECLOSEALL, FILEEXISTS, FILEGETNAME, FILEISOPEN, FILEOPEN Pour modifier les valeurs de LOB : APPEND, COPY, ERASE, TRIM, WRITE, LOADFROMFILE Pour lire ou consulter les valeurs de LOB : GETLENGTH, INSTR, READ, SUBSTR Fonctions et procédures propres aux BFILE : FILECLOSE, FILECLOSEALL, FILEEXISTS, FILEGETNAME, FILEISOPEN, FILEOPEN Package DBMS_LOB

8-21 Copyright © Oracle Corporation, Tous droits réservés. Package DBMS_LOB Les paramètres NULL renvoient des valeurs NULL Positions : –BLOB, BFILE : calculées en octets –CLOB, NCLOB : calculées en caractères Il n'existe aucune valeur négative pour les paramètres Les paramètres NULL renvoient des valeurs NULL Positions : –BLOB, BFILE : calculées en octets –CLOB, NCLOB : calculées en caractères Il n'existe aucune valeur négative pour les paramètres

8-22 Copyright © Oracle Corporation, Tous droits réservés. DBMS_LOB.READ et DBMS_LOB.WRITE PROCEDURE READ ( lobsrc IN BFILE|BLOB|CLOB, amount IN OUT BINARY_INTEGER, offset IN INTEGER, buffer OUT RAW|VARCHAR2 ) PROCEDURE WRITE ( lobdst IN OUT BLOB|CLOB, amount IN OUT BINARY_INTEGER, offset IN INTEGER := 1, buffer IN RAW|VARCHAR2 ) -- RAW for BLOB

8-23 Copyright © Oracle Corporation, Tous droits réservés. Ajouter des colonnes LOB à une table ALTER TABLE employees ADD (resume CLOB, picture BLOB);

8-24 Copyright © Oracle Corporation, Tous droits réservés. Insérer une ligne dans une table possédant des colonnes LOB : Insérer une ligne dans une table possédant des colonnes LOB : Initialiser une colonne LOB à l'aide de la fonction EMPTY_BLOB() : Renseigner les colonnes LOB INSERT INTO employees (employee_id, first_name, last_name, , hire_date, job_id, salary, resume, picture) VALUES (405, 'Marvin', 'Ellis', 'MELLIS', SYSDATE, 'AD_ASST', 4000, EMPTY_CLOB(),NULL); UPDATE employees SET resume = 'Date of Birth: 8 February 1951', picture = EMPTY_BLOB() WHERE employee_id = 405;

8-25 Copyright © Oracle Corporation, Tous droits réservés. Colonne UPDATE CLOB Mettre à jour un LOB à l'aide de SQL UPDATE employees SET resume = 'Date of Birth: 1 June 1956' WHERE employee_id = 170;

8-26 Copyright © Oracle Corporation, Tous droits réservés. Mettre à jour un LOB à l'aide de DBMS_LOB en PL/SQL DECLARE lobloc CLOB; -- serves as the LOB locator text VARCHAR2(32767):='Resigned: 5 August 2000'; amount NUMBER ; -- amount to be written offset INTEGER; -- where to start writing BEGIN SELECT resume INTO lobloc FROM employees WHERE employee_id = 405 FOR UPDATE; offset := DBMS_LOB.GETLENGTH(lobloc) + 2; amount := length(text); DBMS_LOB.WRITE (lobloc, amount, offset, text ); text := ' Resigned: 30 September 2000'; SELECT resume INTO lobloc FROM employees WHERE employee_id = 170 FOR UPDATE; amount := length(text); DBMS_LOB.WRITEAPPEND(lobloc, amount, text); COMMIT; END;

8-27 Copyright © Oracle Corporation, Tous droits réservés. Sélectionner des valeurs de CLOB à l'aide de SQL SELECT employee_id, last_name, resume -- CLOB FROM employees WHERE employee_id IN (405, 170);

8-28 Copyright © Oracle Corporation, Tous droits réservés. Sélectionner des valeurs de CLOB à l'aide de DBMS_LOB DBMS_LOB.SUBSTR (lob_column, no_of_chars, starting) DBMS_LOB.INSTR (lob_column, pattern) DBMS_LOB.SUBSTR (lob_column, no_of_chars, starting) DBMS_LOB.INSTR (lob_column, pattern) SELECT DBMS_LOB.SUBSTR (resume, 5, 18), DBMS_LOB.INSTR (resume,' = ') FROM employees WHERE employee_id IN (170, 405);

8-29 Copyright © Oracle Corporation, Tous droits réservés. Sélectionner les valeurs de CLOB en PL/SQL DECLARE text VARCHAR2(4001); BEGIN SELECT resume INTO text FROM employees WHERE employee_id = 170; DBMS_OUTPUT.PUT_LINE('text is: '|| text); END; /

8-30 Copyright © Oracle Corporation, Tous droits réservés. Supprimer une ligne contenant des LOB : Dissocier une valeur de LOB d'une ligne : Supprimer une ligne contenant des LOB : Dissocier une valeur de LOB d'une ligne : Supprimer les LOB DELETE FROM employees WHERE employee_id = 405; UPDATE employees SET resume = EMPTY_CLOB() WHERE employee_id = 170;

8-31 Copyright © Oracle Corporation, Tous droits réservés. LOB temporaires Les LOB temporaires : –fournissent une interface pour gérer la création de LOB fonctionnant comme des variables locales –peuvent être de type BLOB, CLOB ou NCLOB –ne sont pas associés à une table précise –sont créés à l'aide de la procédure DBMS_LOB.CREATETEMPORARY –utilisent des sous-programmes DBMS_LOB La durée de vie d'un LOB temporaire correspond à une session Les LOB temporaires permettent de transformer les données des LOB internes permanents Les LOB temporaires : –fournissent une interface pour gérer la création de LOB fonctionnant comme des variables locales –peuvent être de type BLOB, CLOB ou NCLOB –ne sont pas associés à une table précise –sont créés à l'aide de la procédure DBMS_LOB.CREATETEMPORARY –utilisent des sous-programmes DBMS_LOB La durée de vie d'un LOB temporaire correspond à une session Les LOB temporaires permettent de transformer les données des LOB internes permanents

8-32 Copyright © Oracle Corporation, Tous droits réservés. Procédure PL/SQL de création et de test d'un LOB temporaire : Créer un LOB temporaire CREATE OR REPLACE PROCEDURE IsTempLOBOpen (p_lob_loc IN OUT BLOB, p_retval OUT INTEGER) IS BEGIN -- create a temporary LOB DBMS_LOB.CREATETEMPORARY (p_lob_loc, TRUE); -- see if the LOB is open: returns 1 if open p_retval := DBMS_LOB.ISOPEN (p_lob_loc); DBMS_OUTPUT.PUT_LINE ('The file returned a value....' || p_retval); -- free the temporary LOB DBMS_LOB.FREETEMPORARY (p_lob_loc); END; /

8-33 Copyright © Oracle Corporation, Tous droits réservés. Synthèse Ce chapitre vous a permis d'apprendre à : identifier quatre types intégrés pour les objets de grande taille : BLOB, CLOB, NCLOB et BFILE décrire la manière dont LOB remplace LONG et LONG RAW décrire les deux options de stockage des LOB : –serveur Oracle ( LOB internes) –fichiers hôte externes ( LOB externes) utiliser le package PL/SQL DBMS_LOB pour fournir des sous-programmes de gestion des LOB utiliser les LOB temporaires dans une session Ce chapitre vous a permis d'apprendre à : identifier quatre types intégrés pour les objets de grande taille : BLOB, CLOB, NCLOB et BFILE décrire la manière dont LOB remplace LONG et LONG RAW décrire les deux options de stockage des LOB : –serveur Oracle ( LOB internes) –fichiers hôte externes ( LOB externes) utiliser le package PL/SQL DBMS_LOB pour fournir des sous-programmes de gestion des LOB utiliser les LOB temporaires dans une session

8-34 Copyright © Oracle Corporation, Tous droits réservés. Présentation de l'exercice 8 Dans cet exercice, vous allez : créer des types d'objet à l'aide des nouveaux types de données CLOB et BLOB créer une table dont les types de données LOB sont des colonnes utiliser le package DBMS_LOB pour renseigner les données de LOB et interagir avec elles Dans cet exercice, vous allez : créer des types d'objet à l'aide des nouveaux types de données CLOB et BLOB créer une table dont les types de données LOB sont des colonnes utiliser le package DBMS_LOB pour renseigner les données de LOB et interagir avec elles