bonjour

j'utilise une base XE avec comme paramètre de langue :
PARAMETER VALUE
NLS_LANGUAGE FRENCH
NLS_ISO_CURRENCY FRANCE
NLS_DATE_LANGUAGE FRENCH
NLS_SORT FRENCH
NLS_CHARACTERSET AL32UTF8

Mais lorsque que fais le code suivant :
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
29
30
31
32
33
34
35
36
37
 
PROCEDURE load_file (p_file_name  IN  my_docs.notice%TYPE) AS
  v_bfile      BFILE;
  v_blob       CLOB;
 
  LN$src_off PLS_INTEGER := 1 ;
  LN$dst_off PLS_INTEGER := 1 ;
  LN$Langctx NUMBER := dbms_lob.default_lang_ctx ;
  LN$Warn NUMBER;
 
 
BEGIN
 
  INSERT INTO my_docs (id, notice, doc)
  VALUES (my_docs_seq.NEXTVAL, substr(p_file_name,1, length(p_file_name) -4), empty_clob())
  RETURN doc INTO v_blob;
 
  v_bfile := BFILENAME('FICHIERS_IN', p_file_name);
  Dbms_Lob.Fileopen(v_bfile, Dbms_Lob.File_Readonly);
  dbms_lob.loadclobfromfile(
                                    v_blob,                -- CLOB de destination
                                    v_bfile,               -- Pointeur fichier en entrée
                                    Dbms_Lob.Getlength(v_bfile),                -- Nombre d'octets à lire
                                    LN$src_off,            -- Position source de départ
                                    LN$dst_off,            -- Position destination de départ
                                    dbms_lob.default_csid, -- CSID
                                    LN$Langctx,            -- Contexte langue
                                    LN$Warn);              -- Message d'avertissement
 
  Dbms_Lob.Fileclose(v_bfile);
COMMIT;
 
   EXCEPTION
     WHEN OTHERS THEN
       debug('erreur !!! load_file :' || to_char( SQLCODE ) || ' = ' || to_char( SQLERRM ), p_file_name);
 
END;
Le fichier est bien intégré.
Sauf que tout les accents ainsi que les lettres suivante sont remplacée par un ? à l'envers sous toad.
Par exemple :
vid¿monoface => vidéomonoface
D¿calisations$g¿nomie politique => Délocalisation$géconomie politique

J'ai essayé de fixé le dbms_lob.default_csid à différente valeur et pas d'amélioration.

Mes fichiers sont des fichiers texte simple avec juste des crlf pour la fin de ligne.

j'ai fais une autre version avec insertion dans un blob.
l'insertion se fais bien mais c'est lors de l'indexation que les accents ne sont pas pris en compte.

auriez vous une idée?