执行sqlplus时出现Oracle错误:“SP2-1503:无法初始化Oracle调用接口”

时间:2012-01-09 14:47:30

标签: linux oracle11g sqlplus opensuse

当我作为普通用户启动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位)

其他细节:

  • 在localhost上安装并运行Oracle
  • 没有tnsnames问题,因为可以运行sqlplus作为oracle admin user
  • 启动数据库启动和监听器(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 :网上有大量内容,但通常情况下,有很多特定于案例的问题,主要是围绕不同版本的Windows。主要关注比较我的环境。此外,据我所知,这个问题在SO上尚不存在,因此开始按环境整理答案可能会有用。我会报告任何明智的发现。

4 个答案:

答案 0 :(得分:5)

如果是Windows 7,您可以右键单击SQL Plus或您使用的任何软件,我使用Crystal Reports。

因此,您必须右键单击以管理员身份运行。

它适合我。

答案 1 :(得分:2)

修正了我的特定问题......

用户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的前面以确保首先找到我的,尽管其他任何环境配置都设置了其他内容,如

export PATH=$ORACLE_HOME/bin:$PATH

你的,有点尴尬,但希望能再给某人帮助。

答案 2 :(得分:0)

答案 3 :(得分:0)

在Windows中我找到了解决方案---

将“创建全局对象”用户权限分配给非管理员帐户。

  1. 转到“管理工具”,然后单击“本地安全策略”。
  2. 展开“本地策略”,然后单击“用户权限分配”。
  3. 在右窗格中,双击“创建全局对象。”
  4. 在“本地安全策略设置”对话框中,单击“添加”。
  5. 在“选择用户或组”对话框中,单击要添加的用户帐户,单击“添加”,然后单击“确定”。
  6. 单击“确定”。