【发布时间】:2021-04-08 09:40:32
【问题描述】:
我正在尝试使用密码中包含 @ 的用户连接到我的远程数据库。
我将 sqlplus v19 与 OracleClient 一起使用,而我的远程数据库也是 OracleServer v19。在数据库上的 alter user 命令期间我没有问题:
alter user USER identified by "P@ssword123"; user altered.
以下是我尝试与该用户连接的命令:
sqlplus USER/"P@ssword123"@tnsname sqlplus USER/'"P@ssword123"'@tnsname sqlplus 'USER/"P@ssword123"'@tnsname sqlplus USER/\"P@ssword123\"@tnsname
以及这些命令的一些变体。
这总是返回相同的 TNS 错误:TNS:could not resolve the connect identifier specified
看起来这些解决方案适用于旧的 sqlplus 版本,但我不知道如何解决这个版本 19 的问题。
当然,我尝试使用非 @ 字符更改密码并且它有效,但在我的特定情况下这不是一个可能的解决方案。
【问题讨论】:
-
您是使用 Windows 还是 Linux 客户端连接?可以试试:
sqlplus USER/\"P@ssword123"@tnsname -
Windows 还是 Linux?
-
我正在使用 Linux 客户端。有了@PCir 的回答,我得到一个提示,因为第一个双引号是转义
-
解决方法是先做sqlplus /nolog,然后用connect user/"P@ssword"@//....就可以了。 SQL> connect tat/"T@AT"@//localhost/pdbbct 已连接。
-
如果您的脚本正在运行来自 sql 文件的命令,请将这个 'connect....' 添加到 sql 文件中
标签: oracle special-characters sqlplus