【问题标题】:Oracle error when executing sqlplus: "SP2-1503: Unable to initialize Oracle call interface"执行sqlplus时Oracle报错:“SP2-1503: Unable to initialize Oracle call interface”
【发布时间】:2012-02-06 02:12:11
【问题描述】:

我在以普通用户身份启动 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
  • 没有 tnsnames 问题,因为可以以 oracle 管理员用户身份运行 sqlplus
  • 数据库已启动,侦听器已启动(安装 11.2.0.2)。
  • 数据库管理员组 (/etc/group) 中的用户 scott
  • 用户 scott 引用了正确的 11.2.0.2 安装

这是最奇怪的,因为我可以愉快地以 oracle 用户(比如“oraadmin”)运行 sqlplus,并且用户 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。

除此之外,我的 $ORACLE_HOME/lib、$ORACLE_HOME/bin、$ORACLE_HOME/oracore 和 $ORACLE_HOME/rdbms 在合理的许可下似乎都是合理的。

注意:网上有很多东西,但通常情况下,有很多特定于案例的问题,主要是围绕不同版本的 Windows。主要专注于比较我的环境。此外,据我所知,SO 上尚不存在此问题,因此对于开始按环境整理答案可能很有用。我会报告任何合理的发现。

【问题讨论】:

  • 认为我的 $PATH 可能有问题。
  • 关于您如何解决问题的任何更新?请帮助别人。
  • 嗨@mowgli,我已经在下面留下了几个答案...第一个列出了一些我发现在搜索中有用的网站。第二个说明了我遇到的特定问题(即我有点愚蠢;-) ...在我的情况下,你会看到我为我的服务器运行了错误的客户端版本并且客户端不会说话到服务器(11.2.0.2 服务器与 11.1.0.7 客户端)。这是由于我的 $PATH 设置在 11202 箱之前列出了 11107 箱 [$ORACLE_HOME 不相关])。我没有接受我自己的答案,因为感觉有点厚脸皮!
  • WM,我不需要做太多,我所做的只是右键单击并在我的 Windows 7 上以管理员身份运行,它对我来说很好。
  • 我在 HKLM\Software\Oracle\SysWoW64 中有一个注册表项,它具有 Oracle_Home 键。我删除了它,它开始工作了!我的环境:Win10、Ora Instant Client 10.2+、Ora 9i 数据库服务器

标签: linux oracle11g sqlplus opensuse


【解决方案1】:

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

用户 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】:
【解决方案3】:

如果是Windows 7,你可以右击SQL Plus或者你用的任何软件,我用的是水晶报表。

所以你必须右键单击以管理员身份运行。

它为我修好了。

【讨论】:

  • 很好的提示...我在 client_1 文件夹的文件属性下添加了对经过身份验证的用户的完全控制(右键单击文件夹,安全选项卡)。似乎已经为我解决了这个问题
【解决方案4】:

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

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

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

【讨论】:

    猜你喜欢
    • 2014-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 2019-02-09
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    相关资源
    最近更新 更多