1:根本原因是装32位服务端不行,32位的服务端装完后,注册表中HKEY_LOCAL_MACHINE/SOFTWARE节点下没有oracle这一节点,而跑到HKEY_LOCAL_MACHINE/SOFTWARE/Win6432Node节点中,所以导致应用程序读取不到oracle相关的dll。
2:下载oracle64位服务端和32位客户端并安装,下载地址
http://download.oracle.com/otn/nt/oracle10g/10204/10204_vista_w2k8_x64_production_db.zip
http://download.oracle.com/otn/nt/oracle10g/10201/10201_client_win32.zip
3:oracle64位服务端装在85%会卡死,解决办法(如果不使用enterprise manager database Console这个组件的话,那么可以不用理会这个错误)
A:下载Patch 8350262补丁,下载地址:http://dbua.iteye.com/blog/1051951
B:设置ORACLE_HOME和ORACLE_SID系统环境变量,同时在PATH环境变量中加入%ORACE_HOME%\OPatch
C:将patch 8350262解压缩,打开cmd窗口,进入解压缩后目录,执行
cmd>opatch apply
D:打开cmd窗口,执行 emca -deconfig dbcontrol db -repos drop
E:执行emca -config dbcontrol db -repos create
4:这时PLsql还连接不上oracle,需要设置,具体如下
A:设置:oci为32位客户端的oci,如D:\oracle\product\10.2.0\Client\BIN\oci.dll
B:添加环境变量,系统变量中添加2个:
第一个是指向TNS文件所在目录的,这个目录是你安装的64位版本Oracle的TNS文件所在目录。TNS文件就是保存了连接信息的文件。
TNS_ADMIN 值: D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN
第二个是指定数据库使用的编码。如果不设置成以下值,那么连接上数据库后,你看到的所有中文的内容将会是乱码,都是一堆问号。
NLS_LANG 值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
注意:设定了环境变量之后,一定要注销或者重启一下电脑才生效!
5,这是倒入基本可以了,如果还会出现乱码现象,或者ORACLE 错误 12899,就按照下面方法,修改数据库字符集为:ZHS16GBK,在sqlplus中进行
SQL>conn sys /sys as sysdba
若此时数据库服务器已启动,则先执行 SHUTDOWN IMMEDIATE 命令关闭数据库服务器,
然后执行以下命令:
SQL>shutdown immediate
SQL>STARTUP MOUNT
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0
SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0
SQL>ALTER DATABASE OPEN
SQL>ALTER DATABASE CHARACTER SET ZHS16GBK
ERROR at line 1:ORA-12721: operation cannot execute when other sessions are active
若出现上面的错误,使用下面的办法进行修改,使用INTERNAL_USE可以跳过超集的检查:
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP
重启之后,正常可运行。OK