我希望连接我的Oracle数据库,无需安装Oracle客户端。
我下载了:
然后我在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
然后我使用tnsnames.ora
C:\Oracle\instantclient
文件
当我向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文件时遇到问题?
答案 0 :(得分:2)
你的命令应该是:
sqlplus user/password@HOST
密码和@HOST
部分之间没有空格。
使用空格,它会将@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
删除空格后,它会将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
对我来说仍然出现错误,因为我HOST
中没有tnsnames.ora
,但这是一个不同的错误,你至少可以看到它试图将它用作TNS别名。如果您已正确定义它,它将能够连接到您的数据库。
答案 1 :(得分:0)
切勿手动编辑$ ORACLE_HOME / network / admin / tnsname.ora,使用“ netmr”创建本地名称。 不知道为什么会一样,但是不起作用。
答案 2 :(得分:0)
这个突击队对我来说很好用:
sqlplus /nolog 连接用户名/密码@主机名:端口/SERVICENAME