您的位置:首页 > 数据库 > SQL

Oracle 11gR2 及PL/SQL Developer 安装使用遇到的问题

2016-03-25 09:52 776 查看
感谢

http://blog.csdn.net/luiseradl/article/details/7064916[给我很多启发]

http://www.cnblogs.com/qima/archive/2012/08/02/2619726.html

http://bbs.csdn.net/topics/380111709

PL/SQL 报错

Initialization error
SQL*Net not properly installed

OracleHomeKey:
OracleHomeDir:


报错原因:大部分是因为64位系统装了Oracle客户端导致的

解决方法:把Oracle客户端卸载,重新在64位系统下安装32位的Oracle客户端

以下为卸载客户端正确步骤:
1. 停止Oracle所有服务
2. 运行Oracle Universal Installer卸载Oracle
3. 修改注册表regedit,删除Oracle相关信息
• Oracle软件有关键-值
HKEY_LOCAL_MACHINE\SOFTWARE\Oracle
• Oracle服务
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
• Oracle事件日志
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application
4. 删除Oracle系统目录C:\program files\oralce
5. 删除Oracle环境变量
6. 删除程序菜单项中的Oracle菜单
7. (重启系统后)删除Oracle工作主目录D:\oralce


PL/SQL 登录

ORA-12154:TNS:无法处理


报错原因:没有手动配置listener.ora和tnsname.ora文件

解决方法:

在大概路径

C:\Oraclexe\app\oracle\product\11.2.0\db_1\NETWORK\ADMIN


中找到listener.ora和tnsname.ora

在listener.ora中找到如下代码(在写之后可能因为权限不足无法保存,在属性当中进行设置,给予adimn写权限即可):

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
)


并把如下代码粘贴到最后详细资料改成自己的:

DEFAULT_SERVICE_LISTENER = (XE)
(SID_DESC =
(GLOBAL_DBNAME = STEVEN)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(SID_NAME = STEVEN)
)


如果出现双新错误

ORA-27101: shared memory realm does not exist


启动打开目录:
c:\app\Administrator\admin\orac11\pfile


会发现里面有一个文件:
init.ora.1052011103553


这是Oracle最后一次成功启动时备份的启动文件。

sqlplus /nolog
create spfile from pfile='C:\app\Administrator\admin\orac11\pfile\init.ora.1052011103553'
startup  // 启动数据库。


一切恢复正常。

PL/SQL 字符集冲突错误

Database character set (AL32UTF8) and Client character set (ZHS16GBK) are different.
Character set conversion may cause unexpected results.
Note: you can set the client character set through the NLS_LANG environment variable or the NLS_LANG registry key in
HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_***


报错原因:
SIMPLIFIED CHINESE_CHINA.ZHS16GBK


包含
AMERICAN_AMERICA.AL32UTF8.


解决方法:

数据库的字符集:

SQL> conn /as sysdba
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;
ORA-12712: new character set must be a superset of old character set

提示字符集:新字符集必须为旧字符集的超集
应该跳过超集的检查做更改:

SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

--
和之前ALTER DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是INTERNAL_USE提供的帮助
使Oracle数据库绕过子集与超集的校验
--
SQL> select * from v$nls_parameters;
SQL> shutdown immediate;
SQL> startup
SQL> select * from v$nls_parameters;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息