当我作为常规用户启动sqlplus时,我正在努力解决以下错误 - 比如说“scott” .
$ sqlplus
SP2-1503: Unable to initialize Oracle call interface
SP2-0152: ORACLE may not be functioning properly
环境是:
-
Oracle 11.2.0.2
-
OpenSuse Linux 11.1(64位)
其他细节:
-
Oracle在localhost上安装并运行
-
没有tnsnames问题,因为可以运行sqlplus作为oracle admin用户
-
数据库启动和监听器已启动(11.2.0.2安装) .
数据库管理组中的 -
用户scott(/ etc / group)
-
用户scott引用正确的11.2.0.2安装
这是最离奇的,因为我可以愉快地运行sqlplus作为oracle用户(比如说“oraadmin”)并且用户scott在oracle管理员组中注册 . 另外,我之前的Oracle安装(10.2.0.7)没有出现过这样的问题 . 我的~scott的$ ORACLE_HOME引用了11.2.0.2安装 .
比较我的11.2.0.2和10.2.0.7环境,我注意到有几个库(包括$ ORACLE_HOME / lib / libsqlplus.so)具有组只读权限(744),因此请对其进行chmod'ded .
除此之外,我的$ ORACLE_HOME / lib,$ ORACLE_HOME / bin,$ ORACLE_HOME / oracore和$ ORACLE_HOME / rdbms看起来都合情合理 .
N.B :'s a plethora of stuff on-line but, as is often the case, there'有很多特定于案例的问题,主要围绕不同版本的Windows . 主要关注比较我的环境 . 此外,据我所知,这个问题并没有报告任何明智的发现 .
4 回答
如果它是Windows 7,您可以右键单击SQL Plus或您使用的任何软件,我使用Crystal Reports .
所以你必须 right click 和 Run as Administrator.
它适合我 .
修复了我的特殊问题......
用户scott的$ PATH仍然包含ora11.1.0.7 bin . 所以,在启动sqlplus时,我正在运行针对11.2.0.2服务器的ora11.1.0.7 sqlplus客户端 . 认为可能还有更多(即我可能希望客户端使用该服务器),但这是问题的中心 .
在我的辩护中,my.bashrc正确设置了$ PATH,因此还不确定11.1.0.7版本的优先级是什么 . 猜测合理的经验法则是将$ ORACLE_HOME / bin添加到$ PATH的前面以确保首先找到我的,尽管其他任何环境配置都设置了其他内容,如
你的,有点尴尬,但希望再次对某人有所帮助 .
一些更有用的网站......
各种Windows环境:
https://forums.oracle.com/forums/thread.jspa?threadID=338426
https://www.administrator.de/Zugriff_auf_OracleDB_(10i)per_sql_plus_von_WTS_2003(Servicepack_2).html
http://www.orafaq.com/forum/t/100549/2/
Linux环境:
在Windows中我找到了解决方案---
将“创建全局对象”用户权限分配给非管理员帐户 .
转到“管理工具”,然后单击“本地安全策略” .
展开“本地策略”,然后单击“用户权限分配” .
在右窗格中,双击“创建全局对象” .
在“本地安全策略设置”对话框中,单击“添加” .
在“选择用户或组”对话框中,单击要添加的用户帐户,单击“添加”,然后单击“确定” .
单击“确定” .