以前在Oracle10g用sqlplus连接oracle数据库,只需要在Enterprise Manage Console里添加oracle数据库的配置信息,就可以用如下格式在sqlplus中连接oracle服务器了。
C:\>sqlplus 用户名/密码@数据库SID_数据库IP (例如sqlplus scott/scott@orcl_192.168.0.8)
电脑更换Oracle11g后,用net manage添加好服务命名后,在net manage里测试,连接时成功的。但是在sqlplus里,用上述格式连接Oracle服务器,总是报错。
C:\>sqlplus scott/1234@orcl_192.168.8
SQL*Plus: Release 11.1.0.6.0 - Production on 星期四 9月 4 14:17:36 2014
Copyright (c) 1982, 2007, Oracle. All rights reserved.
ERROR:
ORA-12154: TNS: 无法解析指定的连接标识符
请输入用户名:
不经意看了下sqlplus的help命令,发现sqlplus的servicename的格式与我在Oracle10g中使用的不一样。
C:\>sqlplus /help
SQL*Plus: Release 11.1.0.6.0 - Production on 星期四 9月 4 14:19:26 2014
Copyright (c) 1982, 2007, Oracle. All rights reserved.
SQL*Plus: Release 11.1.0.6.0 - Production
Copyright (c) 1982, 2007, Oracle. All rights reserved.
使用 SQL*Plus 执行 SQL, PL/SQL 和 SQL*Plus 语句。
用法 1: sqlplus -H | -V
-H 显示 SQL*Plus 版本和
用法帮助。
-V 显示 SQL*Plus 版本。
用法 2: sqlplus [ [<option>] [<logon>] [<start>] ]
<option> 为: [-C <version>] [-L] [-M "<options>"] [-R <level>] [-S]
-C <version> 将受影响的命令的兼容性设置为
<version> 指定的版本。该版本具有
"x.y[.z]" 格式。例如, -C 10.2.0
-F 为 RAC 环境启用故障转移模式。
-L 只尝试登录一次, 而不是
在出错时再次提示。
-M "<options>" 设置输出的自动 HTML 标记。选项
的格式为:
HTML [ON|OFF] [HEAD text] [BODY text] [TABLE text]
[ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]
-R <level> 设置受限模式, 以禁用与文件系统交互的
SQL*Plus 命令。级别可以
是 1, 2 或 3。最高限制级别为 -R 3, 该级别
禁用与文件系统交互的
所有用户命令。
-S 设置无提示模式, 该模式隐藏
命令的 SQL*Plus 标帜, 提示和回显
的显示。
<logon> 为: (<username>[/<password>][@<connect_identifier>] | /)
[AS SYSDBA | AS SYSOPER | AS SYSASM] | /NOLOG | [EDITION=value]
指定数据库帐户用户名, 口令和数据库连接
的连接标识符。如果没有连接
标识符, SQL*Plus 将连接到默认数据库。
AS SYSDBA, AS SYSOPER 和 AS SYSASM 选项是数据库
管理权限。
<connect_identifier> 的形式可以是 Net 服务名
或轻松连接。
@[<net_service_name> | [//]Host[:Port]/<service_name>]
<net_service_name> 是服务的简单名称, 它解析
为连接描述符。
示例: 使用 Net 服务名连接到数据库, 且
数据库 Net 服务名为 ORCL。
sqlplus myusername/mypassword@ORCL
Host 指定数据库服务器计算机的主机名或 IP
地址。
Port 指定数据库服务器上的监听端口。
<service_name> 指定要访问的数据库的
服务名。
示例: 使用轻松连接连接到数据库, 且
服务名为 ORCL。
sqlplus myusername/mypassword@Host/ORCL
/NOLOG 选项可启动 SQL*Plus 而不连接到
数据库。
EDITION 指定应用程序
版本的值
<start> 为: @<URL>|<filename>[.<ext>] [<parameter> ...]
使用将分配给脚本中的替代变量的指定参数
从 Web 服务器 (URL) 或本地文件系统 (filename.ext)
运行指定的 SQL*Plus 脚本。
在启动 SQL*Plus 并且执行 CONNECT 命令后, 将运行站点概要
文件 (例如, $ORACLE_HOME/sqlplus/admin/glogin.sql) 和用户概要文件
(例如, 工作目录中的 login.sql)。这些文件
包含 SQL*Plus 命令。
有关详细信息, 请参阅 SQL*Plus 用户指南和参考。
于是使用C:\>sqlplus 用户名/密码@数据库IP、数据库SID(例如sqlplus scott/scott@192.168.0.8/orcl)后,就顺利连接上Oracle服务器了。经测试,该格式也适用于Oracle10g的sqlplus。
其他参考资料:
http://blog.csdn.net/jerry_bj/article/details/6384309
http://www.cnblogs.com/qixin622/archive/2012/02/23/2364412.html