如何将 SQLPlus 与 tnsnames.ora 连接
How to connect SQLPlus with tnsnames.ora
我想连接我的 Oracle 数据库而不 安装 Oracle 客户端。
我下载了:
- "Instant Client Package - Basic" 和
- "Instant Client Package - SQL*Plus"
然后我在 C:\Oracle\instantclient
上创建了文件夹,我在其中提取了所有包。
我已经设置 system environment
喜欢:
Path - C:\Oracle\instantclient
NSL_LANG - with properly key
ORACLE_HOME - C:\Oracle\instantclient
ORACLE_SID - C:\Oracle\instantclient
TNS_ADMIN - C:\Oracle\instantclient
然后我在 C:\Oracle\instantclient
中创建了带有配置的 tnsnames.ora
文件
当我向 cmd 发出命令时:
sqlplus user/password @HOST
我有这样一条消息:
ERROR:
ORA-12560: TNS:protocol adapter error
但是当我尝试时:
sqlplus user/password@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=address to host)(Port=1521))(CONNECT_DATA=(SID=address to SID)))
一切正常。为什么 SQL 无法识别 tnsnames.ora 文件?
你的命令应该是:
sqlplus user/password@HOST
密码和 @HOST
部分之间没有 space。
对于 space,它会将 @HOST
视为您登录后要执行的脚本,并尝试在本地连接,这会产生 TNS 错误。 (因为你没有登录 HOST
从未被评估以确定它是否存在,所以在这一点上它实际上是噪音)。
C:\>sqlplus -l -s x/y @HOST
ERROR:
ORA-12560: TNS:protocol adapter error
SP2-0751: Unable to connect to Oracle. Exiting SQL*Plus
删除 space 后,它会查找 HOST
作为 TNS 别名:
C:\>sqlplus -l -s x/y@HOST
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
SP2-0751: Unable to connect to Oracle. Exiting SQL*Plus
对我来说仍然出现错误,因为我的 tnsnames.ora
中没有 HOST
,但这是一个不同的错误,您可以看到它至少在尝试将其用作 TNS别名。如果您正确定义了它,它将能够连接到您的数据库。
切勿手动编辑 $ORACLE_HOME/network/admin/tnsname.ora,使用 "netmr" 创建本地名称。
不知道为什么它是一样的但不起作用。
这个突击队很适合我:
sqlplus /nolog
连接 username/password@hostname:port/SERVICENAME
我想连接我的 Oracle 数据库而不 安装 Oracle 客户端。
我下载了:
- "Instant Client Package - Basic" 和
- "Instant Client Package - SQL*Plus"
然后我在 C:\Oracle\instantclient
上创建了文件夹,我在其中提取了所有包。
我已经设置 system environment
喜欢:
Path - C:\Oracle\instantclient
NSL_LANG - with properly key
ORACLE_HOME - C:\Oracle\instantclient
ORACLE_SID - C:\Oracle\instantclient
TNS_ADMIN - C:\Oracle\instantclient
然后我在 C:\Oracle\instantclient
tnsnames.ora
文件
当我向 cmd 发出命令时:
sqlplus user/password @HOST
我有这样一条消息:
ERROR:
ORA-12560: TNS:protocol adapter error
但是当我尝试时:
sqlplus user/password@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=address to host)(Port=1521))(CONNECT_DATA=(SID=address to SID)))
一切正常。为什么 SQL 无法识别 tnsnames.ora 文件?
你的命令应该是:
sqlplus user/password@HOST
密码和 @HOST
部分之间没有 space。
对于 space,它会将 @HOST
视为您登录后要执行的脚本,并尝试在本地连接,这会产生 TNS 错误。 (因为你没有登录 HOST
从未被评估以确定它是否存在,所以在这一点上它实际上是噪音)。
C:\>sqlplus -l -s x/y @HOST
ERROR:
ORA-12560: TNS:protocol adapter error
SP2-0751: Unable to connect to Oracle. Exiting SQL*Plus
删除 space 后,它会查找 HOST
作为 TNS 别名:
C:\>sqlplus -l -s x/y@HOST
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
SP2-0751: Unable to connect to Oracle. Exiting SQL*Plus
对我来说仍然出现错误,因为我的 tnsnames.ora
中没有 HOST
,但这是一个不同的错误,您可以看到它至少在尝试将其用作 TNS别名。如果您正确定义了它,它将能够连接到您的数据库。
切勿手动编辑 $ORACLE_HOME/network/admin/tnsname.ora,使用 "netmr" 创建本地名称。 不知道为什么它是一样的但不起作用。
这个突击队很适合我:
sqlplus /nolog 连接 username/password@hostname:port/SERVICENAME