gpt4 book ai didi

oracle - sqlplus使用bash变量登录报错: SP2-0306: Invalid option

转载 作者:行者123 更新时间:2023-11-29 09:09:18 33 4
gpt4 key购买 nike

我有一个连接到 oracle 10g 数据库的 bash 脚本。

第一步,它使用以下命令从“配置”文件中获取一些变量

. /path/to/my/configfile.ini

在配置文件中有一些变量:

export USRID=myUser
export USRID_PASS=myPassword
export USR_PASS="$USRID/$USRID_PASS@myDatabase"

然后它实际上使用命令通过 sqlplus 进行连接:

sqlplus -s $usr_pass

撇开可怕的安全和设计问题不谈(这个脚本已经存在了 5 年)。这实际上是在我们的一个 UNIX 服务器上完成它的工作,而不是在另一个服务器上。

当我使用 bash -x 运行脚本时,我可以看到命令扩展为:

sqlplus -s myUser/myPassword@myDatabase

...这应该没问题(并且实际上在一台服务器上工作),但故障服务器的响应是:

ERROR: ORA-01017: invalid username/password; logon denied

SP2-0306: Invalid option. Usage: CONN[ECT] [logon] [AS {SYSDBA|SYSOPER}] where ::= [/][@] | SP2-0306: Invalid option.

我猜它与 bash 的关系要比与 oracle 的关系大,但我不是 bash 专家。是否缺少某些配置或细节?

编辑:

试图进一步确定问题,我现在在第三个开发服务器上运行两个版本的脚本,在不同的测试中,如果我这样做,登录工作:

sqlplus -s $usrid/$usrid_pass@myDatabase

但当我尝试时不是:

sqlplus -s $usr_pass

所以有点烦人。

除此之外,我还必须检查配置文件同步过程...我会在有新内容时通知您。谢谢大家。

最佳答案

信息很清楚:

  • 你已经成功连接到一个数据库
  • 提供的凭据有误

这表明您的客户端配置确实没有任何问题。

所以,剩下的就是

  • 用户/密码组合错误
  • 你没有联系你认为你有的数据库

可能性:

  • 确保您可以使用命令行提供的凭据进行连接。
  • 使用 tnsping mydatabase 检查您正在联系的主机和实例,验证其是否正确。此命令的输出应告诉您要连接的主机、端口和实例/服务。如果有误,请检查 tnsnames.ora 文件是否有此别名。
  • 正如@OMG Ponies 所建议的,如果您使用的是 11g,请确保您的密码大小写正确

关于oracle - sqlplus使用bash变量登录报错: SP2-0306: Invalid option,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6550542/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com