我已经在Mac Sierra上下载并安装了Oracle Instant Client。 我还创建了tnsnames.ora文件并导出了它的路径。
但是,当我尝试登录远程Oracle服务器时,出现以下错误:
Mridulas-MacBook-Pro:~ mridulaprabhu$ sqlplus demo$security/password@ERPONWEB
SQL*Plus: Release 11.2.0.4.0 Production on Fri Aug 18 16:37:03 2017
Copyright (c) 1982, 2013, Oracle. All rights reserved.
ERROR:
ORA-01017: invalid username/password; logon denied
当我的同事在Windows上使用相同的凭据连接到同一台服务器时,他可以登录。
有人告诉我这可能是因为我MAC上的字符集。所以我将NLS_LANG设置为AMERICAN_AMERICA.US7ASCII
,但它仍然不起作用。
我该如何解决这个问题?
答案 0 :(得分:1)
OS X是一个Unix变种,你从shell运行它。因此,您的用户名中的$
被解释为环境变量。
如果你这样做:
echo demo$security/password@ERPONWEB
你会看到它只显示demo/password@ERPONWEB
- 除非你碰巧有一个名为security
的envorinment变量,在这种情况下它将被替换。
您可以转义美元符号以停止该解释:
sqlplus demo\$security/password@ERPONWEB
或将整个参数括在单个( not double)引号中:
sqlplus 'demo$security/password@ERPONWEB'