加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle – 使用bash变量时出现Sqlplus登录错误:SP2-0306:无效

发布时间:2020-12-12 13:50:53 所属栏目:百科 来源:网络整理
导读:我有一个连接到oracle 10g数据库的bash脚本. 在第一步中,它使用以下命令从“config”文件中获取一些变量 . /path/to/my/configfile.ini 在配置文件中有一些变量: export USRID=myUserexport USRID_PASS=myPasswordexport USR_PASS="$USRID/$USRID_PASS@myDa
我有一个连接到oracle 10g数据库的bash脚本.

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

. /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服务器上完成它的工作,而不是在另一个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

所以它有点烦人.

除此之外,我将不得不检查te配置文件同步过程…当我得到新的东西时,我会告诉你.谢谢大家.

消息很清楚:

>您已成功联系数据库
>提供的凭据是错误的

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

所以,这让你失望

>用户/ pw组合错误
>您没有联系过您认为的数据库

Possibilites:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读