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;
Encodage de la base avec la commande :
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
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select * from nls_database_parameters where parameter='NLS_CHARACTERSET'
Le code de la procédure stockée permettant d'enregistrer les documents (j'ai omis le prototype de la procédure volontairement) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part NLS_CHARACTERSET AL32UTF8
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
Partager