Database sqlplus中特殊字符的转义
我有一个带有密码的oracle数据库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
+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来保存密码,而不是将其放在命令行中(这通常不是一个好主意,即使它不会抛出错误)。不幸的是,这也不起作用。尝试跳过密码并在提示下输入,但效果不佳。