首页 > 解决方案 > SQLPLUS 连接到带有特殊字符“@”的数据库

问题描述

我正在尝试使用密码中包含 @ 的用户连接到我的远程数据库。

我将 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 的问题。

当然,我尝试使用非 @ 字符更改密码并且它可以工作,但在我的特定情况下这不是一个可能的解决方案。

标签: oraclespecial-characterssqlplus

解决方案


感谢您的所有回复。
我在你的帮助下弄清楚了。我什至修改了它以使其与我传递一些变量的 PL/SQL 脚本兼容。
答案 :

sqlplus /NOLOG << EOF
connect USER/"P@ssword123"@tnsname
@script_plsql.sql $var1 $var2 $var3
EOF


推荐阅读