oracle连接问题ORA-00604,ORA-12705

我的问题:

10:18:03,635 ERROR [IdGenerator]
CAUGHT AT:
CONTAINER:atg.service.idgen.IdGeneratorException; SOURCE:CONTAINER:atg.service.idgen.IdGeneratorException; SOURCE:org.jboss.util.NestedSQLException: Could not create connection; - nested throwable: (java.sql.SQLException: ORA-00604: error occurred at recursive SQL l
ORA-12705: Cannot access NLS data files or invalid environment specified
); - nested throwable: (org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-12705: Cannot access NLS data files or invalid environment specified
))
        at atg.service.idgen.PersistentIdGenerator.initialize(PersistentIdGenerator.java:367)
        at atg.service.idgen.AbstractSequentialIdGenerator.doStartService(AbstractSequentialIdGenerator.java:621)
        at atg.nucleus.GenericService.startService(GenericService.java:496)


解决办法:

在windows XP控制面板中修改区域和语言选项,把"区域选项"中的"标准和格式"自定义为"英语(美国)";


参考资料:

http://wdhdd889.iteye.com/blog/524709



oracle连接问题ORA-00604,ORA-12705

    博客分类: 
  • java
Oracle Myeclipse Eclipse OSGI SQL 

最近也想整整spring和hibernate,于是从网上找个例子来做,例子是MySql的,但我这里数据库用的是oracle,照着例子一步步来,但配置好连接串,
却怎么也连接不上,同时用pl/sql是能连接上的.报的是ORA-00604,上网google一搜,还真有这个问题,我就在这转贴下,
原文是链接是:
http://blog.chinaunix.net/u2/77127/showart_1160177.html 
原文内容是:
myeclipse6.0 连接oracle10g的问题 ORA-00604,ORA-12705
MyEclipse Database Explorer建立oracle 10g数据库连接的时候 总提示
java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1 
ORA-12705: invalid or unknown NLS parameter value specified
问题初步分析是 Myeclipse语言 和oracle 10g 冲突问题。
进一步分析,由于oracle 是可以正常登陆的,所以问题出现在myeclipse 这边。
解决方法一:在网上搜索到的 估计myeclipse的版本是 5.0,解决方法
1.在windows XP控制面板中修改区域和语言选项,把"区域选项"中的"标准和格式"自定义为"英语(美国)";
2.在MyEclipse中help菜单>About MyEclipse...>点击"Configuration Details",设置其中的两个值:
osgi.nl=en_US 
user.language=en 
这样就可以在MyEclipse Database Explorer中顺利建立oracle连接了.
该方法在myeclipse6.0中不适应。

我的解决方法:
修改eclipse.ini文件,将"-Duser.language=en"修改为"-Duser.language=zh"。问题解决。
分析:主要原因是MyEclipse在启动时候,语言编码是在[MyEclipse路径]\eclipse\eclipse.ini文件中加载的。 而国别编码是从系统的区域设置中得到的。如果MyEclipse默认启动参数为"-Duser.language=en",而操作系统设为"中文(中国)"MyEclipse加载后的信息就是"en_CN",这样就会出现上述问题,所以只要将两边的设置改成一致的,就可以解决上述问题. 你也可以就系统的区域设置定为"中文(中国)",修改eclipse.ini文件,将"-Duser.language=en"修改为"-Duser.language=zh",这样在MyEclipse加载后的Configuration Details信息就统一为zh_CN,即"osgi.nl=zh_CN".
 
如果是oracle 9i 问题,则可以如下解决方法
数据库服务器字符集select   *   from   nls_database_parameters,其来源于props$,是表示数据库的字符集。     
      客户端字符集环境select   *   from   nls_instance_parameter,其来源于v$parameter,     
  表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表     
          
      客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter   session>环境变量>注册表>参数文件     
      字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。   
    
  首先查看当前数据库字符集是什么,配置资料库选用相同  

你可能感兴趣的:(oracle,数据库,MyEclipse,database,oracle10g,nested)