【问题标题】:SQLPLUS Connection to DB with special characters '@'SQLPLUS 连接到带有特殊字符“@”的数据库
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2015-04-30
    • 2020-06-04
    • 2021-11-02
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 2021-05-12
    相关资源
    最近更新 更多