Bonjour,

Ci-dessous le corps d'une procédure stockée permettant de transformer en HTML un document (ici un document Word) enregistré dans une colonne de type BLOB ((j'ai omis le prototype de la procédure volontairement)) :

Code sql : 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
 
 
...
 
   ctx_doc.markup (index_name      => 'documents_indx',
                   textkey         => p_doc_id,
                   text_query      => p_texte,
                   restab          => 'my_markup_table',
                   plaintext       => FALSE,
                   starttag        => '<FONT COLOR="RED"><B><A NAME=HIT%CURNUM HREF=#HIT%NEXTNUM>',
                   endtag          => '</A></B></FONT>',
                   prevtag         => '',
                   nexttag         => ''
                  );
 
...

J'ai un problème pour récupérer dans un encodage correct (j'ai des ??? à l'envers alors que je m'attends à voir du texte en grec (que je ne comprends pas plus ) ) le contenu d'une colonne de type BLOB, le résultat de la procédure ci-dessus produit ce HTML dans ma table de destination my_markup_table :

Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
 
...
 
<p><font face="Times New Roman" size="3">¿¿¿¿¿¿</font>
<p><font face="Times New Roman" size="3"><b>¿¿¿¿¿¿¿ ¿¿¿ ¿¿¿¿¿¿¿¿¿</b></font>
<p><font face="Times New Roman" size="3"><b>¿¿¿</b></font>
<p><font face="Times New Roman" size="3"><b>¿¿¿ ¿¿¿ ¿¿¿¿¿¿¿¿¿¿¿ ¿¿¿ ¿¿¿¿¿¿¿ 2002/72/¿¿ ¿¿¿¿¿¿¿ ¿¿ ¿¿ ¿¿¿¿¿¿¿¿ ¿¿¿¿¿ ¿¿¿ ¿¿¿¿¿¿¿¿¿¿¿ ¿¿¿ ¿¿¿¿¿¿¿¿¿¿¿¿ ¿¿ ¿¿¿¿¿¿ ¿¿ ¿¿¿¿¿ ¿¿ ¿¿¿¿¿¿¿ </b></font>
<p><font face="Times New Roman" size="3">(¿¿¿¿¿¿¿¿ ¿¿¿ ¿. ¿. ¿¿¿¿¿¿¿¿¿)</font>
 
...

Pour informations :

Version Oracle avec la commande :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT * FROM SYS.V_$VERSION;

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production                          
CORE	10.2.0.3.0	Production                                      
TNS for Solaris: Version 10.2.0.3.0 - Production                
NLSRTL Version 10.2.0.3.0 - Production
Encodage de la base avec la commande :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
select * from nls_database_parameters
where parameter='NLS_CHARACTERSET'

Code : Sélectionner tout - Visualiser dans une fenêtre à part
NLS_CHARACTERSET               AL32UTF8
Le code de la procédure stockée permettant d'enregistrer les documents (j'ai omis le prototype de la procédure volontairement) :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
 
...
 
INSERT INTO VIS_DOCUMENTS_T (doc_id, doc_name, doc_contents, doc_title, doc_type, doc_format, doc_language, doc_size, doc_number, doc_version, doc_part, doc_lang_source, trans_int_ext, req_date, req_code, req_year, req_service)
  VALUES (doc_seq.NEXTVAL , p_file_name, EMPTY_BLOB(), v_DOC_TITLE, v_DOC_TYPE, v_DOC_FORMAT,  v_DOC_LANGUAGE, v_DOC_SIZE, v_DOC_NUMBER, v_DOC_VERSION,v_DOC_PART, v_DOC_LANG_SOURCE, v_TRANS_INT_EXT, v_REQ_DATE, v_REQ_CODE, v_REQ_YEAR, v_REQ_SERVICE)
  RETURN doc_contents INTO v_blob;
 
  v_bfile := BFILENAME('DOCUMENTS_IN', p_file_name);
  Dbms_Lob.Fileopen(v_bfile, Dbms_Lob.File_Readonly);
  Dbms_Lob.Loadfromfile(v_blob, v_bfile, Dbms_Lob.Getlength(v_bfile));
  Dbms_Lob.Fileclose(v_bfile);
 
...

Script de création de la table MY_MARKUP_TABLE :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
CREATE TABLE MY_MARKUP_TABLE
(
  QUERY_ID  NUMBER,
  DOCUMENT  CLOB
)

Auriez vous une solution pour résoudre mon souci ? des pistes ?

Merci d'avance