2009-06-11 7 views
3

Je souhaite spécifier la langue de la connexion JDBC avant sa création.Définition de la langue pour le client léger Oracle JDBC

Par exemple, si je spécifie les informations d'identification L faux/P dans

DriverManager.getConnection(url, user, password)  

Je dois obtenir ORA erreur localisée à la langue que je choisi. J'utilise Oracle client léger et le réglage NLS_LANG variable d'environnement n'a pas fonctionné

Répondre

1

Vous pouvez avoir un certain succès en utilisant la méthode DriverManager.getConnection(String url, Properties info).

De la documentation:

Paramètres:

url - une URL de base de données du formulaire jdbc: subprotocol: subname

info - une liste de tag chaîne arbitraire/paires de valeurs en tant qu'arguments de connexion; normalement au moins une propriété "utilisateur" et "mot de passe" doivent être inclus

Peut-être quelque chose comme cela peut fonctionner:

String url = ...; 
Properties info = new Properties(); 
info.setProperty("user", ...); 
info.setProperty("password", ...); 
info.setProperty("NLS_LANG", ...); 
DriverManager.getConnection(url, info); 
+0

J'ai essayé ça mais ça ne marche pas pour moi. :-( – sax

0

Selon la documentation ----

Providing Globalization Support 

The basic Java Archive (JAR) files, ojdbc5.jar and ojdbc6.jar, contain all the necessary classes to provide complete globalization support for: 

    Oracle character sets for CHAR, VARCHAR, LONGVARCHAR, or CLOB data that is not being retrieved or inserted as a data member of an Oracle object or collection type. 
    CHAR or VARCHAR data members of object and collection for the character sets US7ASCII, WE8DEC, WE8ISO8859P1, WE8MSWIN1252, and UTF8. 

To use any other character sets in CHAR or VARCHAR data members of objects or collections, you must include orai18n.jar in the CLASSPATH environment variable of your application. 
1

Cette travaillé le mieux pour moi, comme indiqué dans NLS_LANG setting for JDBC thin driver?

-Duser.language=en -Duser.region=US 
+0

Cela fonctionne parce que le pilote JDBC vérifie la langue locale dans Java Locale, puis change la langue de la base de données en conséquence lors de l'établissement de la connexion.La langue de la session DB est utilisée pour renvoyer le message d'erreur dans la langue appropriée. –

Questions connexes