【发布时间】:2014-09-16 05:37:17
【问题描述】:
我有两台 IBM AIX 服务器。一个安装了 Oracle Client 10.2.0.4,另一个安装了 Oracle Client 10.2.0.5。在 SQLPLUS 静默模式下,根据 oracle 文档,不会调用用户名和密码提示,也不会调用其他提示。但在 oracle 10.2.0.5 中,“输入密码:”提示即将出现,导致我的 shell 脚本出现一些问题。以下是两台服务器的日志。我刚刚使用 /NOLOG 连接到 sqlplus 并连接到 schema@DB 并输入密码并从 dual 中选择 1。
在带有 Oracle Client 10.2.0.4 的 IBM AIX 5.3 中(运行良好):
$> sqlplus -s /NOLOG
connect schema_name@DBName
select 1 from dual;
1
-------
1
exit
$>
在带有 Oracle Client 10.2.0.5 的 IBM AIX 6.1 中(无法正常工作):
$> sqlplus -s /NOLOG
connect schema_name@DBName
Enter password:
select 1 from dual;
1
-------
1
exit
$>
很明显,可以看到“输入密码:”正在以静默模式显示。我是否需要在 Oracle Client 10.2.0.5 中配置一些东西来解决这个问题。
【问题讨论】:
-
你确定客户端是10.2.0.5,而不是服务器;并且您没有使用 11g 客户端?这看起来像错误 9693295,但只提到了 11gR2(参见 MOS Doc ID 1101753.1)。如果可以,您可以修补或使用以后的即时客户端来编写脚本吗?如果您在非交互式脚本中进行连接,您可以提供密码作为连接的一部分,但仍然不显示它,但不确定您的脚本在做什么。
-
$>sqlplus schema_name@DBName SQL*Plus:版本 10.2.0.5.0 - 2014 年 9 月 16 日星期二 02:39:33 生产 版权所有 (c) 1982, 2010, Oracle。版权所有。输入密码:连接到:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production SQL>
-
好的;无论如何看起来像一个错误,也许你可以在 MOS 上找到一个 10g 版本(和补丁)。或者使用 11.2.0.3 或更高版本的客户端。
-
在我们的应用程序代码库中,我们连接到数据库并单独提供密码并检索数据。随着“输入密码:”提示的出现,在我们从数据库中获取的数据中,“输入密码:”也出现了,我们得到了错误的输出。我们可以提供带有模式和数据库名称的密码,这将阻止“输入密码:”提示,但这意味着我们试图避免巨大的代码更改。我认为密码和用户提示不应该以静默模式出现。我们能解决这个问题吗?您能否推荐一个 10.2.0.5 版本的补丁来解决这个问题。
-
您需要搜索 My Oracle Support 或提出服务请求才能找到 10.2.0.5 的补丁(如果有的话)。不过,我真的会考虑使用当前的instant client,如有必要,与您的应用程序一起分发。 (我相信 AIX 5 版本也适用于 6.1)。