I am getting this error while trying to create a connection pool, on my Oracle database, 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
I am able to connect to the database over sqlplus & iSQLPlus client, but when I try to connect using this Java program, I get this error just when the connection pool is to be initialised and it does not initialise the connection pool.
Can someone please help me resolving it?
DB Version: Oracle version 10.2.0.1
OS: RHEL 4.0
Here is a barebone, java code which is throwing this error, while connecting to my database.
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){}
}
}
}
I figured out that that you could pass that two params to your Java app to resolve the issue:
You could configure the values at environment variable level as well (depends from your OS).
import java.util.*;
What is
set to on the machine where you are trying to execute the java program from? If you haven't already, you should first unset NLS_LANG and try that. If that doesn't work, set it to the character set of your specific database and see if that fixes the issue.
Document #158654.1 in Metalink explains how to resolve this kind of errors.
It could be a simple error in your environnement (have a look at the $NLS_* environnement variables) or a rights permissions (Do you have rights on $ORACLE_HOME/ocommon/nls/admin/data ?)