Database sqlplus中特殊字符的转义

Database sqlplus中特殊字符的转义,database,oracle,passwords,escaping,sqlplus,Database,Oracle,Passwords,Escaping,Sqlplus,我有一个带有密码的oracle数据库 +oS0pocWEpvaX++CN3]8nM‘2eX 如果我尝试使用 sqlplus -S -L USER/'"+oS0pocWEpvaX++CN3]8nM‘2eX"'@host @script.sql sqlplus -S -L USER/'+oS0pocWEpvaX++CN3]8nM‘2eX'@host @script.sql sqlplus -S -L USER/"+oS0pocWEpvaX++CN3]8nM‘2eX&q

我有一个带有密码的oracle数据库

+oS0pocWEpvaX++CN3]8nM‘2eX
如果我尝试使用

sqlplus -S -L USER/'"+oS0pocWEpvaX++CN3]8nM‘2eX"'@host @script.sql
sqlplus -S -L USER/'+oS0pocWEpvaX++CN3]8nM‘2eX'@host @script.sql
sqlplus -S -L USER/"+oS0pocWEpvaX++CN3]8nM‘2eX"@host @script.sql
他们都因错误而失败

ORA-01017: invalid username/password; logon denied

但是,在sql developer中使用相同的密码。如果无法更改此密码,如何让sqlplus工作?

如果您使用的是Linux,另一种尝试方法是使用here doc:

sqlplus << EOHD
CONNECT USER/+oS0pocWEpvaX++CN3]8nM‘2eX@host
@script
EXIT
EOHD

sqlplus您使用的是什么操作系统?我的建议是尝试
sqlplus-S-L'USER/+oS0pocWEpvaX++CN3]8nM'2eX@host“@script.sql
使用linux ubuntu。这也是ORA-01017的失败之处:用户名/密码无效;拒绝登录。某些操作系统上的某些特殊字符不能从命令行工作,因为它们对特定操作系统具有特殊意义。在大多数情况下,没有解决办法。它将在SQL Developer中工作,因为操作系统在密码通过应用程序时不会解释密码的内容。根据我的经验,命令行中唯一通用的特殊字符是下划线(\ux)。在您的情况下,我猜其中一个字符被读取为行尾,密码被截断,导致ORA-01017错误。@pmdba但echo命令工作正常echo“+oS0pocWEpvaX++CN3]8nM'2eX”+oS0pocWEpvaX++CN3]8nM'2eX如果操作系统的其中一个字符有问题,这样不行?我只能说这不是保证。我建议您尝试使用Oracle Wallet来保存密码,而不是将其放在命令行中(这通常不是一个好主意,即使它不会抛出错误)。不幸的是,这也不起作用。尝试跳过密码并在提示下输入,但效果不佳。