J'ai cette erreur dans mon application Web J2EE.
java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1 ORA-12705: Cannot access NLS data files or invalid environment specified oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145) oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:283) oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:278) oracle.jdbc.driver.T4CTTIoauthenticate.receiveOauth(T4CTTIoauthenticate.java:785) oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:376) oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441) oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165) oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35) oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:839) java.sql.DriverManager.getConnection(Unknown Source) java.sql.DriverManager.getConnection(Unknown Source) org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133) org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446) org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167) org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142) org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85) org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353) org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85) org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353)
11 Réponses :
essayer suivant:
\ hkey_local_machine \ logiciel \ oracle code>. li>
- Vérifiez que le logiciel client Oracle est correctement installé. li>
- Vérifiez s'il existe plusieurs maisons Oracle sur cet ordinateur. Dans ce cas, trouvez une entreprise active et vérifiez si cela fonctionne. li>
- Test avec SQL * Plus s'il y en a un installé. SQL Developer fonctionne car il a sa propre installation client. li>
ol>
edit: strong>
En ce qui concerne les pilotes, consultez ce site: Client Instant Oracle . Vous trouverez une documentation sur l'installation minimale des pilotes nécessaires à l'accès JDBC à Oracle. Je ne sais pas grand chose à ce sujet parce que j'utilise .net. P> Edit 2: strong>
Voir cette question: paramètre NLS_LANG pour le conducteur mince JDBC . Il y a la même erreur que vous et le problème était que les paramètres régionaux par défaut pour NLS Lang n'ont pas été définis. Citation: P>
Les paramètres NLS_LANG sont dérivés du Java.Util.Locale. Par conséquent, vous devrez appeler un appel similaire à celui-ci avant de connecter: p>
blockQuote> xxx pré> p>
Dois-je installer un client Oracle pour mon application Web pour vous connecter? Je pensais avoir juste besoin du pot de pilotes ODBC inclus dans mon projet.
J'ai compris que vous pouviez transmettre que vous pouviez transmettre que deux paramètres de votre application Java pour résoudre le problème:
-Duser.country=en -Duser.language=en
J'ai trouvé une solution, je change simplement la langue régionale et la langue dans mon système d'exploitation (Windows 7), assurez-vous qu'il correspond à la région régionale et de langue Oracle. P>
J'ai eu le même problème. La solution consistait à ajouter le pays et la langue à Veuillez ouvrir le fichier: p> et ajoutez ce qui suit: < / p> ce qui précède fait le truc. p> référence: http://forum.oradba.net/showthread.php?t=423&langid=1 P> p> sqldeveloper.conf code>
Travaillé pour moi. Mais c'est la science de la fusée ... je veux dire comment je suppose que ça ...
Tu es le gouverneur lol, 2 heures plus tard merci beaucoup!
Vous avez sauvé ma journée.
Pour Windows env, vous devez modifier le système local et format système code> sur
anglais / US code>. p>.
Le pilote Oracle JDBC exécute implicitement l'instruction suivante après l'ouverture de la nouvelle connexion:
-Doracle.jdbc.languageMap="ru=RUSSIAN;RU=RUSSIAN"
Merci pour cette réponse! Dans mon cas, c'était system.setproperty ("oracle.jdbc.territoiremap", "ru = russie; ru = cis"); code> affectation qui a résolu le problème (pour l'ancien Oracle9i).
première requête exécutée: Cela donnera à Oracle régional et langue. Changez la langue régionale et la langue au système d'exploitation, les deux devraient correspondre. P> p>
Vérifiez la variable système Java_Home et vérifiez qu'il s'agit de la même version que vous utilisez dans vos projets et programmes P>
Vous devriez fournir plus d'informations sur cette variable: où le trouver? Qu'est-ce que ça fait vraiment? etc.
Si vous compilez avec Intelljide, je vous conseille d'ajouter des options suivantes dans VMOPTIONS trouvés dans Configurations Modèle
AddVMOption -Duser.region=us.
Changer les paramètres de la région et la langue de ma machine a aidé à vous échapper avec cela. J'ai changé de région aux États-Unis et en anglais (États-Unis) comme langue. p>
Si vous exécutez une application de printemps, add locale.setdefault (locale.frish); à la classe principale.
public static void main(String[] args) throws Exception { Locale.setDefault(Locale.ENGLISH); SpringApplication.run(ApplicationName.class, args); }