我正在使用 Toad 连接我的数据库,它对我来说工作正常。但是当我尝试使用相同的凭据连接时,我收到如下所示的错误消息:
ORA-12154 TNS: could not resolve the connect identifier specified
脚步:
- 打开的命令提示符
- 到达 SQLPLUS 的路径(C:\programs\Oracle\Ora11g\BIN)
- C:\programs\Oracle\Ora11g\BIN\sqlplus 用户名@schema_name
输入密码 :
错误:ORA-12154 TNS:无法解析指定的连接标识符
但是当我用架构的所有者打开它时,它对我有用
C:\programs\Oracle\Ora11g\BIN\sqlplus schema_name@schema_name
输入密码:
连接到:............
所以,我的问题是为什么我的用户名无法连接该特定模式,而该模式的所有者可以连接。注意:我可以使用 Toad 的用户名连接到该架构,但不能使用 sqlplus
我TNSNAME.ORA
在TNS_ADMIN
文件夹下
请帮我解决这个问题。
因此,您无需在运行时指定完整路径
sqlplus.exe
:将您的
%TNS_ADMIN%
变量设置为相关文件夹的完整路径 (C:\programs\Oracle\Ora11g\TNS_ADMIN
?)。这样做的说明是谷歌。同时,确保%ORACLE_HOME%
设置为C:\programs\Oracle\Ora11g
并且您%PATH%
已C:\programs\Oracle\Ora11g\bin
添加到其中。您实际遇到的问题是由于您传递给 sqlplus 的参数。
你一直在做:
这是错误的,被 sqlplus 解释为:
此外,在 Oracle 中,模式的所有者(因此是模式名称)是用户名。显然,可以授予其他用户在其他模式上执行 DML/DDL 的权限,但您仍然必须使用具有足够权限的用户登录。(代理登录也存在,
alter session set current_schema=blah
但两者都超出了此答案的范围)。实际上通过蟾蜍您可以登录,因为
ORACLE_HOME
在那里设置。但是一旦你尝试使用$ORACLE_HOME/bin
,你的家就没有正确设置。要解决这个问题,先导出
$ORACLE_HOME
再$ORACLE_SID
试试,应该没问题。