|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||||||||||
![]() ![]() |
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 :
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 Code html :
Pour informations : Version Oracle avec la commande : Code :
Code sql :
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 :
Script de création de la table MY_MARKUP_TABLE : Code sql :
Auriez vous une solution pour résoudre mon souci ? des pistes ? Merci d'avance
__________________
Cordialement, elitost(Eric Reboisson) SpringSource Certified Spring Professional Certifié SCWCD J2EE 5.0 Certifié SCJP J2SE 5.0 Certifié ITIL Foundation Responsable : FAQ Maven 2 , FAQ SCM Autres : Site web Developpez , Mon site personnel , Mon CV Twitter : Suivez moi sur Twitter |
||||||||||||
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
c'est probablement le NLS_LANG du poste client qui pose problème non ?
|
|
|
00
|
|
|
#3 | |
![]() ![]() |
Citation:
http://fadace.developpez.com/oracle/nls/ Ou alors pourrais tu m'expliquer quoi vérifier pour qualifier le problème ?
__________________
Cordialement, elitost(Eric Reboisson) SpringSource Certified Spring Professional Certifié SCWCD J2EE 5.0 Certifié SCJP J2SE 5.0 Certifié ITIL Foundation Responsable : FAQ Maven 2 , FAQ SCM Autres : Site web Developpez , Mon site personnel , Mon CV Twitter : Suivez moi sur Twitter |
|
|
00
|
|
|
#4 | |||
![]() ![]() |
Citation:
Code sql :
SELECT * FROM NLS_SESSION_PARAMETERS; donne : Code :
__________________
Cordialement, elitost(Eric Reboisson) SpringSource Certified Spring Professional Certifié SCWCD J2EE 5.0 Certifié SCJP J2SE 5.0 Certifié ITIL Foundation Responsable : FAQ Maven 2 , FAQ SCM Autres : Site web Developpez , Mon site personnel , Mon CV Twitter : Suivez moi sur Twitter |
|||
|
00
|
|
|
#5 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
désolé mais la manipulation des NLS c'est pas trop mon fort
|
|
|
00
|
|
|
#6 | |
![]() ![]() |
Citation:
Peut être qu'une bonne âme qui passe par là pourra m'éclairer ?
__________________
Cordialement, elitost(Eric Reboisson) SpringSource Certified Spring Professional Certifié SCWCD J2EE 5.0 Certifié SCJP J2SE 5.0 Certifié ITIL Foundation Responsable : FAQ Maven 2 , FAQ SCM Autres : Site web Developpez , Mon site personnel , Mon CV Twitter : Suivez moi sur Twitter |
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Il faudrait vérifier avec la fonction DUMP que le contenu de la colonne est correcte (ce qui suppose de connaître la représentation binaire des caractères grecs dans AL32UTF8: voir sur unicode.org):
Code :
SELECT dump(<colonne>, 1017) FROM <table>; Sous Unix, c'est une variable d'environnement et sous Windows c'est par défaut une clé de registre. La partie jeu de caractères est utilisée par le client Oracle pour savoir s'il faut éventuellement traduire les caractères stockés dans la base côté client. Peut-être qu'il faut positionenr la partie jeu de caractères de NLS_LANG à EL8ISO8859P7 ?(voir une liste des jeux de caractères dans le Globalization Guide). Est-ce que vous pouvez afficher des caractères grecs dans votre environnement client ? Quel est l'outil utilisé pour afficher les données de la base ? Il est sans doute préférable d'utiliser un client de type SQL Developer plutôt que SQL*Plus. |
|
|
00
|
|
|
#8 | |||||||||||
![]() ![]() |
Citation:
Code :
Qui m'a renvoyé : J'ai alors ajouté une variable d'environnement NLS_LANG avec comme valeur GREEK_GREECE.EL8MSWIN1253 Maintenant j'ai : Code :
Code sql :
Code html :
Quand j'utilise TOAD pour visualiser le contenu de la colonne CLOB j'ai : Code html :
Au final, ce code HTML sera affiché dans un client Java (j'ai fais également des tests avec Java mais sans plus de succès) mais comme déjà je ne m'en sort pas du côté Oracle je préfère y aller étape par étape. D'autres idées ?
__________________
Cordialement, elitost(Eric Reboisson) SpringSource Certified Spring Professional Certifié SCWCD J2EE 5.0 Certifié SCJP J2SE 5.0 Certifié ITIL Foundation Responsable : FAQ Maven 2 , FAQ SCM Autres : Site web Developpez , Mon site personnel , Mon CV Twitter : Suivez moi sur Twitter |
|||||||||||
|
00
|
|
|
#9 | ||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 319 ![]() |
Pour l'instant laise TOAD à coté, utilisez SQL Plus sur le serveur de base de données.
Pour connaître les paramètres de ta session Code :
|
||
|
|
00
|
|
|
#10 | |||||
![]() ![]() |
Citation:
Par contre, en SQL Plus, dans une console DOS sur mon poste, j'ai ce résultat : Code sql :
ça peut vous aider à éclaircir mon pb ?
__________________
Cordialement, elitost(Eric Reboisson) SpringSource Certified Spring Professional Certifié SCWCD J2EE 5.0 Certifié SCJP J2SE 5.0 Certifié ITIL Foundation Responsable : FAQ Maven 2 , FAQ SCM Autres : Site web Developpez , Mon site personnel , Mon CV Twitter : Suivez moi sur Twitter |
|||||
|
00
|
|
|
#11 | ||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 319 ![]() |
Peut tu créer la table MY_MARKUP_TABLE comme indiquée plus bas et réessayer ?
Code :
|
||
|
|
00
|
|
|
#12 | |||||
![]() ![]() |
Citation:
Code sql :
D'autres idées ?
__________________
Cordialement, elitost(Eric Reboisson) SpringSource Certified Spring Professional Certifié SCWCD J2EE 5.0 Certifié SCJP J2SE 5.0 Certifié ITIL Foundation Responsable : FAQ Maven 2 , FAQ SCM Autres : Site web Developpez , Mon site personnel , Mon CV Twitter : Suivez moi sur Twitter |
|||||
|
00
|
|
|
#13 | |||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 319 ![]() |
Citation:
|
|||
|
|
00
|
|
|
#14 |
![]() ![]() |
Si tu as d'autres idées , je suis toujours preneur...
__________________
Cordialement, elitost(Eric Reboisson) SpringSource Certified Spring Professional Certifié SCWCD J2EE 5.0 Certifié SCJP J2SE 5.0 Certifié ITIL Foundation Responsable : FAQ Maven 2 , FAQ SCM Autres : Site web Developpez , Mon site personnel , Mon CV Twitter : Suivez moi sur Twitter |
|
00
|
|
|
#15 |
![]() ![]() |
Juste comme ça, peut être que le souci est au moment de l'indexation du document ?
__________________
Cordialement, elitost(Eric Reboisson) SpringSource Certified Spring Professional Certifié SCWCD J2EE 5.0 Certifié SCJP J2SE 5.0 Certifié ITIL Foundation Responsable : FAQ Maven 2 , FAQ SCM Autres : Site web Developpez , Mon site personnel , Mon CV Twitter : Suivez moi sur Twitter |
|
00
|
|
|
#16 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Est-ce que vous avez testé la possibilité d'insérer des caractères grecs et de pouvoir les afficher correctement dans le même environnement (même base, même client (SQL*Plus, Toad, ...), même valeur pour NLS_LANG) ?
|
|
|
00
|
|
|
#17 | |||
![]() ![]() |
Citation:
Dans une console DOS, voilà ce que j'ai fais : 1/passage du code page en Grec (737); 2/connexion à la base; 3/insertion de caractères grecs et commit; 4/select des valeurs 5/vue des paramètres de language de la session 6/vue des paramètres de language de la base de données Code sql :
Après insertion, je vois toujours les caractères erronés, peut être ai je oublié qqch ou fait une erreur quelque part ? Une idée ? explication ? Merci d'avance
__________________
Cordialement, elitost(Eric Reboisson) SpringSource Certified Spring Professional Certifié SCWCD J2EE 5.0 Certifié SCJP J2SE 5.0 Certifié ITIL Foundation Responsable : FAQ Maven 2 , FAQ SCM Autres : Site web Developpez , Mon site personnel , Mon CV Twitter : Suivez moi sur Twitter |
|||
|
00
|
|
|
#18 | ||
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Je vois plusieurs problèmes:
Je ne suis pas sûr que sqlplus.exe arrive à afficher des caractères grecs même avec la commande graftabl et le bon NLS_LANG. Vous utilisez un codage HTML qui ne peut pas être reconnu tel quel par Oracle comme codage de caractères. Si on ne pas entrer directement un caractère grec, il faut utiliser la fonction SQL UNISTR qui permet de choisir le caractère à partir de sa représentaion hexadécimale en Unicode. Code :
|
||
|
|
00
|
|
|
#19 |
![]() ![]() |
Je vais regarder plus en détail cette fonction unistr
Je crois qu'avec la version TOAD International je pourrais réussir à voir les caractères, mais ce n'est pas la version que nous utilisons. De toute manière au final, ce sera un client Java qui va lire ces caractères, mais avant je voulais comprendre pourquoi ces caractères bizarroïdes. Je reviendrai plus tard après quelques investigations.
__________________
Cordialement, elitost(Eric Reboisson) SpringSource Certified Spring Professional Certifié SCWCD J2EE 5.0 Certifié SCJP J2SE 5.0 Certifié ITIL Foundation Responsable : FAQ Maven 2 , FAQ SCM Autres : Site web Developpez , Mon site personnel , Mon CV Twitter : Suivez moi sur Twitter |
|
00
|
|
|
#20 | ||||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 319 ![]() |
C'est dur!
Code :
Code :
Et après avoir fait "Prévisualisation du message" j'ajoute: SQL> select b from aa 2 ; B -------------------------------------------------------------------------- Δ Ha, Ha. |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com