Bonjour,

J'utilise une fonction PL/SQL qui permet de récupérer un fichier (excel en l'occurence) situé en local sur le serveur, via un BFILE.

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
24
25
26
27
28
 
create or replace PROCEDURE display_bfile(p_id NUMBER) IS
  v_amt   NUMBER DEFAULT 32767;
  v_off   NUMBER DEFAULT 1;
  v_raw   RAW(32767);
  v_bfile BFILE;
BEGIN
  -- On récupère le pointeur vers le fichier
  SELECT filename INTO v_bfile FROM t_bfile WHERE id = p_id;
  -- On ouvre le fichier
  dbms_lob.fileopen(v_bfile);
  -- On défini de manière arbitraire un mime/type
  owa_util.mime_header('application/vnd.ms-excel');
  -- On affiche le contenu de notre fichier
  BEGIN
    LOOP
      dbms_lob.READ(v_bfile, v_amt, v_off, v_raw);
      htp.print(utl_raw.cast_to_varchar2(v_raw));
      v_off := v_off + v_amt;
      v_amt := 400;
    END LOOP;
  EXCEPTION
    WHEN no_data_found THEN
      NULL;
  END;
  -- On ferme notre fichier
  dbms_lob.fileclose(v_bfile);
END;
J'ouvre le fichier via IE ou firefox avec une application Oracle Express.
Mon problème est le suivant:
Cela marche sans problème pour les fichier de moins de 3 Mo ... Par contre au dela, soit le fichier ne s'ouvre pas du tout, soit il est tronqué.

Est ce qu'il existe une limitation à ces fonctions? Et-il possible d'augmenter cette limitation?

Merci d'avance
AkA