|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : mars 2005 Messages : 119 ![]() |
Bonjour,
Nous utilisons un job Talend installé sur un serveur Unix qui se connecte à une base de données avant de réaliser tout un tas de traitement. La connexion est initialisée à partir des variables d'environnement du serveur notamment la variable NLS_LANG qui définit la langue et le characterset utilisé dans la connexion. Sur le serveur, NLS_LANG=American_America.UTF8 or j'aimerais pouvoir modifier, dans mon job Talend, la valeur de cette variable en fonction, par exemple, d'un paramètre. C'est une modification qui peut normalement se faire sous Unix avec un simple export NLS_LANG=FRENCH_FRANCE.WE8ISO8859P1 , mais sous Talend, je ne trouve pas le composant qui me permettrait de jouer cette commande Unix avant d'utiliser mon composant tOracleConnection. Auriez vous une idée à ce sujet ? Merci d'avance |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Inscription : août 2005 Messages : 117 ![]() |
Tu peux jouer une commande shell avec le composant tSystem.
Cependant, le client Oracle (En l'occurence ici, ton server Talend) utilise cette variable pour les conversions implicites entre son NLS_LANG et celui définis au niveau de ta base Oracle. Pourquoi as-tu besoin de modifier "à la volée" le NLS_LANG" définis sur ton serveur ? |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : mars 2005 Messages : 119 ![]() |
Bonjour et merci pour ton aide.
En fait j'utilise des API Oracle qui s'appuient sur cette variable d'environnement pour lancer des traitements dans la langue de l'utilisateur. Il faut donc pouvoir faire varier cette valeur à la volée. J'ai essayé d'utiliser tSystem, mais j'obtiens une erreur lors de l'interprétation de la commande export ("export NLS_LANG=FRENCH_FRANCE.WE8ISO8859P1"). Erreur également si ma commande est passée sous la forme suivante : "sh export NLS_LANG=FRENCH_FRANCE.WE8ISO8859P1" J'ai donc essayé d'utiliser le composant tSetEnv, mais il ne semble pas modifier ma variable puisque quand je lis sa valeur avant la connexion, je n'obtiens pas la valeur que je lui ai affectée. |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Inscription : août 2005 Messages : 117 ![]() |
Tu peux toujours modifier directement les paramètres NLS de la session Oracle, ce sera plus propre que de modifier ceux du client.
par exemple : ALTER SESSION SET NLS_LANGUAGE="FRENCH" ALTER SESSION SET NLS_TERRITORY="FRANCE" ALTER SESSION SET NLS_CHARACTERSET="WE8ISO8859P1" |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : mars 2005 Messages : 119 ![]() |
Merci pour ton aide, c'est effectivement la solution vers laquelle je me suis orienté.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com