那么我该如何正确连接?我使用了很多选项,例如:
sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))'
sqlplus (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=b)))
提交这些命令行通常会给我返回错误消息,例如: :TNS:协议适配器错误
ORA-12514:TNS:侦听器当前不了解服务
非常感谢!!
#1 楼
您是否尝试过sqlplus username/password@host:port/service
sqlplus x/y@c:a/b
现代版本的sqlplus(版本11或更高版本)理解此语法,因此不需要tnsnames.ora文件。
评论
它完美地工作
– Gajotres
15年1月22日在13:53
哪个版本?在CentOS错误上对我不起作用:ORA-12154:TNS:无法解析指定的连接标识符
– Edmondo1984
16年6月23日在11:35
默认端口号:1521
–周星驰
16年8月31日在7:28
我有SID而不是服务,所以使用“:”代替“ /”对我有用sqlplus username / password @ host:host:port:sid
– Pratik Goenka
17 Mar 27 '17 9:04
v11.2.0.1.0随附的sqlplus不支持host:port语法。似乎11.2.0.4.0已支持...
– gavenkoa
19年1月20日在18:59
#2 楼
最简单的方法是使用tnsnames.ora文件连接到数据库。为此,请对其进行编辑并添加一个新条目:该文件通常位于$ ORACLE HOME \ NETWORK \ ADMIN目录中。 br />
myDb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = c)(Port =a))
)
(CONNECT_DATA =
(SERVICE_NAME =b)
)
)
,然后您可以连接到数据库:
sqlplus x / y @ myDb
评论
为避免在命令行上输入密码,请参阅以下注释中的链接:serverfault.com/a/87038/27813
–rogerdpack
15年2月18日在21:06
#3 楼
对于原始海报...在第一个选项中,您错过了右括号错误:(您的字符串)
sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))'
正确: />
sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED))))'
#4 楼
您的sqlplus行看起来正确,请验证以下各项:您可以在数据库服务器本身上以sysdba的身份进行连接。服务器本身。
您可以从尝试连接的计算机上ping数据库服务器。
您可以从试图连接的计算机上监听监听器。
如果所有这些都已签出,您可能希望创建一条新的连接线以确保没有错字。
#5 楼
也许您的数据库没有启动。如果计算机已重新启动,并且该实例未设置为自动启动(并且该实例未手动启动),则可能需要自己启动该服务。从那里做;或者,您可以从命令行中进行操作。转到命令提示符并输入以下命令:
set oracle_sid=ORCL
net start oracleserviceORCL
第一个设置Oracle SID;第二个实际上启动了服务。
#6 楼
可以从sqlplus帮助中提取:可以采用网络服务名称
或Easy Connect的形式。
@[<net_service_name> | [//]Host[:Port]/<service_name>]
#7 楼
SQL * Plus 19.9.0.0显示了这种语法在第二个提示上输入它。这样,它是不可见的。而且,对于Ora19,这是我能够成功使用的连接语法,而无需tnsnames
Usage: CONN[ECT] [{logon|/|proxy}
[AS {SYSDBA|SYSOPER|SYSASM|SYSBACKUP|SYSDG|SYSKM|SYSRAC}] [edition=value]]
where <logon> ::= <username>[/<password>][@<connect_identifier>]
<proxy> ::= <proxyuser>[<username>][/<password>][@<connect_identifier>]
#8 楼
我发现很容易进行远程桌面连接并打开命令提示符,然后通过以下方式进行连接:sqlplus sys/YourPassword as sysdba
#9 楼
您应该启动数据库服务。为此,转到开始菜单->运行并启动services.msc
,然后在其中搜索数据库服务并启动它。之后它将开始工作。#10 楼
这对我适用于Oracle 11Gsqlplus orcl_usr/orcl_usr_pass@host/sid
评论
假设您拥有正确的主机/端口,在我看来,实例未运行或未在侦听器中注册。使用ezconnect:sqlplus x / y @ c:a / b
作为记录,如果我用引号将它包围起来,那么您的第二个示例(至少)对我有用。像x @“(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST = c)(PORT = a))(CONNECT_DATA =(SID = b)))”
在窗口中打开->服务开始-> oracleservicexe对我有用。