ORA-12705: Não é possível acessar arquivos de dados NLS ou ambiente inválido especificado

6

Estou recebendo este erro ao tentar criar um pool de conexão, no meu banco de dados Oracle, o Oracle 10gR2.

java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-12705: Cannot access NLS data files or invalid environment specified

Eu consigo me conectar ao banco de dados sobre o sqlplus & cliente iSQLPlus, mas quando tento conectar usando este programa Java, recebo esse erro apenas quando o conjunto de conexões é inicializado e ele não inicializa o conjunto de conexões.

Alguém por favor pode me ajudar a resolver isso?

Versão do banco de dados: Oracle version 10.2.0.1

SO: RHEL 4.0

Aqui está um barebone, código java que está jogando este erro, enquanto se conecta ao meu banco de dados.

import java.sql.*;

public class connect{
    public static void main(String[] args) {
        Connection con = null;
        CallableStatement cstmt = null;

        String url = "jdbc:oracle:thin:@hostname:1521:oracle";
        String userName = "username";
        String password = "password";

        try
        {
            System.out.println("Registering Driver ...");
            DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());

            System.out.println("Creating Connection ...");
            con = DriverManager.getConnection(url, userName, password);

            System.out.println("Success!");

        } catch(Exception ex) {
            ex.printStackTrace(System.err);
          } finally {
            if(cstmt != null) try{cstmt.close();}catch(Exception _ex){}
            if(con != null) try{con.close();}catch(Exception _ex){}
            }
    }

}
    
por M.N 08.09.2009 / 07:16

4 respostas

10

Descobri que você poderia passar esses dois parâmetros para seu aplicativo Java para resolver o problema:

-Duser.country=en -Duser.language=en

Você também pode configurar os valores no nível da variável de ambiente (depende do seu sistema operacional).

    
por 08.04.2010 / 14:53
2

import java.util. *;

Locale.setDefault(Locale.ENGLISH); // use this for change NLS
   String URL = "jdbc:oracle:thin:@//"+khost+":"+kport+"/"+kbasename;

DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
   Connection con = DriverManager.getConnection(URL,kuser,kpassword);
    
por 18.01.2010 / 21:55
1

O que é

NLS_LANG

definido na máquina onde você está tentando executar o programa java? Se você ainda não o fez, primeiro você deve desmarcar NLS_LANG e tentar isso. Se isso não funcionar, configure-o para o conjunto de caracteres de seu banco de dados específico e veja se isso resolve o problema.

    
por 11.09.2009 / 17:07
0

O documento 158654.1 do Metalink explica como resolver esse tipo de erro.

Poderia ser um erro simples em seu ambiente (veja as variáveis $ NLS_ * environnement) ou permissões de direitos (você tem direitos sobre $ ORACLE_HOME / ocommon / nls / admin / data?)

    
por 10.09.2009 / 15:08