Bonjour,
J'ai crée une procédure à laquelle je passe un id et un nom de fichier en paramètre. Le contenu du fichier est insérée dans une base de données à l'aide d'un blob. Mais là ou je bloque, c'est que je veux insérer tout le contenu de chaque fichier qui se trouve dans le répertoire sans rien passer en paramètre.
Voici mon code de base qui me permet d'insérer un fichier à la fois:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 CREATE OR REPLACE PACKAGE BODY insert_blob IS PROCEDURE add_blob(p_id NUMBER, p_name VARCHAR2) IS v_blob BLOB; v_bfile BFILE; BEGIN INSERT INTO t_blob VALUES (p_id, empty_blob()) RETURNING files INTO v_blob; v_bfile := bfilename(directory => 'DOCUMENTS', filename => p_name); dbms_lob.fileopen(v_bfile); dbms_lob.loadfromfile(v_blob, v_bfile, dbms_lob.getlength(v_bfile)); dbms_lob.fileclose(v_bfile); END; END insert_blob; /
Avez-vous des idées comment je pourrais procéder ou du moins le morceau de code que je dois ajouter à ma prodédure? Je sais que je dois ajouter un WHILE LOOP pour dire tant que les fichiers sont présents dans le dossier t'insère leur contenus dans la base de données et une fois qu'on ai parcouru tout le dossier , on quit , mais écrire ca avec PL/SQL je bloque.
Merci
Partager