Dans ce tutoriel, vous apprendrez à insérer un fichier dans la base de données Oracle. Le type de fichier peut être un PDF, une Image ou n'importe quel document. J'utilise le type de données BLOB dans la table Oracle pour illustrer l'exemple suivant.
Suivez ces étapes pour insérer un fichier (PDF, Image, Docx, Xlsx, etc.) dans la colonne BLOB de la table de la base de données Oracle
- Créez une table dans le schéma de base de données Oracle avec une colonne BLOB, comme illustré dans l'exemple ci-dessous.
CREATE TABLE ext_files ( file_name VARCHAR2 (1000), file_content BLOB) /
- Créez ensuite un objet de répertoire de base de données à partir duquel vous souhaitez insérer les fichiers, comme indiqué dans l'exemple ci-dessous.
CREATE OR REPLACE DIRECTORY PDF_FILES As 'C:\my_pdf_files';
- Créez maintenant la fonction suivante pour convertir un fichier en un type de données BLOB. Mais assurez-vous de changer le nom du répertoire PDF_FILES dans la fonction ci-dessous avec le nom que vous avez créé l'objet répertoire.
CREATE OR REPLACE FUNCTION file_to_blob(p_file_name VARCHAR2) RETURN BLOB AS dest_loc BLOB := empty_blob(); src_loc BFILE := BFILENAME('PDF_FILES', p_file_name); BEGIN DBMS_LOB.OPEN(src_loc, DBMS_LOB.LOB_READONLY); DBMS_LOB.CREATETEMPORARY( lob_loc => dest_loc , cache => true , dur => dbms_lob.session ); DBMS_LOB.OPEN(dest_loc, DBMS_LOB.LOB_READWRITE); DBMS_LOB.LOADFROMFILE( dest_lob => dest_loc , src_lob => src_loc , amount => DBMS_LOB.getLength(src_loc)); DBMS_LOB.CLOSE(dest_loc); DBMS_LOB.CLOSE(src_loc); RETURN dest_loc; END file_to_blob; /
Vous êtes maintenant prêt pour le test d'insertion d'un fichier dans la table de la base de données Oracle.
Test pour insérer un fichier PDF
DECLARE v_blob BLOB; BEGIN v_blob := file_to_blob ('emp.pdf'); INSERT INTO ext_files VALUES ('emp.pdf', v_blob); COMMIT; END; /
Test pour insérer un fichier image (JPG)
DECLARE v_blob BLOB; BEGIN v_blob := file_to_blob ('oracle-18c-install-step-1.JPG'); INSERT INTO ext_files VALUES ('oracle-18c-install-step-1.JPG', v_blob); COMMIT; END; /
Vérifiez le tableau pour les enregistrements
SELECT * FROM EXT_FILES;
Sortie
Voir aussi :
- Décompressez un fichier ZIP à l'aide de PL/SQL
- Fichiers ZIP en PL/SQL
-
Comment faites-vous pour que votre base de données parle plusieurs langues ?
-
Microsoft Access DevCon à Vienne en Autriche du 1er au 2 avril 2017
-
Moyens possibles pour résoudre le problème de corruption des métadonnées SQL Server
-
Modélisation d'une base de données pour l'enregistrement des ventes. Partie 1