代 码 之 家
☆╭╮╭╮の
╭☆┴┴☆╮
│╭╮╭╮ │
╰○--○╯

ORA-00604,ORA-12705
转载:
java.sql.SQLException: ORA-00604: error occurred at recursive
SQL level 1 ORA-12705: Cannot access NLS data files or invalid
environment specified 一开始以为是驱动程序的问题,其实不是,只需在eclipse目录下找到
eclipse.ini文件,把 Duser.language=en 改成 Duser.language=zh
就行了。
(注:使用此方法前,先检查下myeclipse快捷方式的属性中是否设置
了Duser.language,如果设置了,得设成Duser.language=zh,这里功
能等同改eclipse.ini文件)
有可能大家出现的问题不一样,按我的方法有可能不好使,我写出来仅供大家参考,因为当时为解决这问题,花了不少时间,希望大家少走弯路。
继续转:
温州平台,ora9i与C#编写的webserver,在运行中出现下显错误:
ORA-00604:error occurred at recursive SQL level 1.1
ORA-12705:invalid or unknown NLS parameter value specified
解决办法:
1、设置ASPNET用户有访问ORACLE安装目录下的BIN目录的权限
2、修改注册表中NLS_LANG的键值与ORACLE数据库中的表PROPS$中的NLS_LANGUAGE的值一致
3、重新启动计算机以后就OK了

ORA-00257
转载:
ORA-00257: archiver error. Connect internal only, until freed.
问题缘由:在做RMAN性能测试的时候发现我在insert大量数据,并且到达一定量的时候,oracle会报出错误,错误内容就是上面这句话。
问题解决办法: 归档日志使用的磁盘空间已满。
SQL> shutdown abort;
ORACLE instance shut down.
删除一些老的磁盘归档文件(我删除了所有的归档文件,然后就导致了另外的一个问题,问题解决将在后面一篇文章中指出)
SQL> startup
ORACLE instance started.
总结:其实问题的本质是归档日志的使用已经达到了spfile等启动参数文件中指定的最大值。oracle 10g中归档日志默认的存放地是闪回目录,
即%ORACLE_BASE%/flash_recovery_area的相应实例名下面,这个位置
的大小在参数文件中有个限制,解决空间不足的问题可以通过两种方
式来实现,一个修改这个大小限制,还有一个就是修改归档日志存放
位置。我们下面就来说说这个归档日志目的地修改的方法。首先从spfile创建pfile,因为spfile是不运行使用vi等工具直接修改的,我们可以直接使用vi修改pfile的文件。创建方法:create pfile
from spfile; 这句要在数据关闭的情况下执行,创建出来的pfile在%ORACLE_HOME%/dbs下面init+实例名+.ora的文件。使用vi打开这个文件后加入LOG_ARCHIVE_DEST=''即可,然后再使用create spfile from pfile即可,这里的pfile可能要指定相应的位置,如create spfile from pfile=''; 。建立好后在startup数据库即可。

ORA-12154,ORA-12514
ORA-12154: TNS: 无法解析指定的连接标识符
用PL/SQL链接ORACLE时报的是这个错,需要注意PL/SQL的属性中设置的ORACLE_HOME设置的是什么,在哪里设置的网络连接,就需要制定哪里(如是client还是home)。
ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME
解决方法:首先检查数据库服务器是否启动,IP是否正常,然后在检查Oracle的服务都起来没(监听服务等等4个)!确定都启了,还有问题时
1. 打开<OracleHome>/network/admin/listener.ora文件,找到:
   SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
       (SID_NAME = PLSExtProc)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
       (PROGRAM = extproc)
     )
   )
  2. 添加:
     (SID_DESC =
       (GLOBAL_DBNAME = ORACLE)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1) 
       (SID_NAME = ORACLE)
      )
    需要注意到是两处SID_NAME后面的ORACLE应该为数据库名!
  3. 最后变成:
 SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
       (SID_NAME = PLSExtProc)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
       (PROGRAM = extproc)
     )
     (SID_DESC =
       (GLOBAL_DBNAME = ORACLE)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1) 
       (SID_NAME = ORACLE)
      )
   )
  4. 保存文件,重启服务中的TNSListener,OK!

VTK-1000
用Oracle9i的客户端管理工具连Oracle10g的服务端,提示“VTK-1000:无法连接到Management   Server  主机名l。请验证您已输入Oracle   Management   Server   的正确主机名和状态”。监听、网络连接什么都建好了,也测试通过了,用SQL Plus也能连上去,什么原因呢?网上找了一对资料,有说防火墙问题,有说要启动ManagementServer服务,有说版本不对需要装OID,都试了,没找到ManagementServer服务,也不知道怎么装OID,最后发现问题出在登陆方式的选择上,登陆时有“独立登陆”和“登陆到Oracle Management Server”两种,如果选独立登陆就没问题了。

ORA-01436

ORA-01436:用户数据中的CONNECT BY循环

Select * From t_unit Start With dwbm='0000' Connect By Prior dwbm=sjdw 使用此句,由于表中存在互为子节点的数据导致出现ORA-01436错误,指出树形查询中出现循环

解决方法:加上nocycle 。即Select * From t_unit Start With dwbm='0' Connect By Nocycle Prior dwbm=sjdw

 

posted on 2008-08-22 13:18  娜娜  阅读(1091)  评论(0编辑  收藏  举报