sqlplus连接oracle数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlplus连接oracle数据库相关的知识,希望对你有一定的参考价值。

1、sqlplus test/test
登陆到sqlplus后,再使用:connect test/test,它会提示“已连接”,那请问第一个sqlplus test/test难道没有连到数据库么?
2、为什么这里使用sqlplus test/test就可以连接到数据库,并没有指定@service_name?难道远程访问时才需要使用@service_name?谢谢!

1.都是用户登录。。sqlplus test/test是系统命令下的登录,而connect(或者conn)是sqlplus下用户切换的命令。
2.没有@service_name是登录本地库,不需要经过监听器(listener)。加@service_name是通过监听连接库(成功的前提是你的tnsnames.ora配置好,网络畅通,数据库端监听开启,sqlnet.ora设置好),远程连接的时候必须要通过监听才行,当然登录本地库也可以通过监听。
参考技术A sqlplus test/test
以后,再一次执行 connect test/test
会提示“已连接”
我估计 sqlplus 是这么判断的: 你已经以 test 作为用户名连接到服务器了。 现在又要以 test 作为用户名, 连接到服务器。 没有必要 断开连接, 然后再连接一次。
你可以尝试 conn 另外一个用户名/密码 看看。 应该就不会提示 “已连接”
因为 会首先 断开 test 的连接, 再创建一个新的连接了。

sqlplus test/test就可以连接到数据库
这个应该是 连接到本机 默认的数据库。
就是连接安装在自己这台机器上面的 默认的数据库。

连接到其他数据库的时候,才需要指定 @的。
参考技术B sqlplus test/test 就是一test 身份登录数据库的啊。
所以你再次使用test/test 登录 就会出现那样的提示

2 这个要看你 的 tnsname.ORA 文件里面的 状况了

# tnsnames.ora Network Configuration File: D:\oracle\product\11.1.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORACL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dfvkr-PC.hz.ali.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = oracl)
)
)
aliim_test =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.250.7.171)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = asoft)
)
)

ALIUID =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.249.197.100)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = aliuid)
)
)
想我的这样的 就必须使用@dbname了
参考技术C sqlplus [ [<option>] [<logon>] [<start>] ]

<option> 为: [-C <version>] [-L] [-M "<options>"] [-R <level>] [-S]

-C <version> 将受影响的命令的兼容性设置为
<version> 指定的版本。该版本具有
"x.y[.z]" 格式。例如, -C 10.2.0
-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] | /NOLOG

指定数据库帐户用户名, 口令和数据库连接
的连接标识符。如果没有连接
标识符, SQL*Plus 将连接到默认数据库。

AS SYSDBA 和 AS SYSOPER 选项是数据库管理
权限。

/NOLOG 选项可启动 SQL*Plus 而不连接到
数据库。

<start> 为: @<URL>|<filename>[.<ext>] [<parameter> ...]

使用将分配给脚本中的替代变量的指定参数
从 Web 服务器 (URL) 或本地文件系统 (filename.ext)
运行指定的 SQL*Plus 脚本。

在启动 SQL*Plus 并且执行 CONNECT 命令后, 将运行站点概要
文件 (例如, $ORACLE_HOME/sqlplus/admin/glogin.sql) 和用户概要文件
(例如, 工作目录中的 login.sql)。这些文件
可包含 SQL*Plus 命令。本回答被提问者采纳

如何用 oracle sqlplus 登录远程数据库

参考技术A 方法一:
1、在开始菜单中,找到oracle应用程序开发-sql
plus。双击sql
plus。
2、弹出的sql
plus框中,输入数据库实例的用户名和密码,按enter键。
3、如果oracle服务器中装有多个数据库实例,则在用户名处输入:用户名/密码@数据库名称。如果数据库服务器不在本机上,还需要加上数据库服务器的地址:用户名/密码@ip地址/数据库名称。
方法二:
1、在开始-运行,输入cmd。弹出的黑色框中输入:sqlplus
用户名/密码@ip地址/数据库名称。
sqlplus是oracle数据库服务器的主要接口,可以理解为客户端,它提供了一个功能非常强大且易于使用的查询、定义和控制数据库环境。
参考技术B 公司使用linux开发机进行程序开发时,由于开发用
Oracle数据库
是由日方提供,所以经常使用sqlplus连接到
远程数据库
上进行开发,
例如:sqlplus
username/password@servicename
于是想,用我的两台电脑
双机互联
试一试,也玩个
远程连接
。实验如下:
首先在我的台式机上安装了
Oracle9i

数据库管理系统
,并建立了一个数据库实例:xy然后为该实例新增了一个用户,用户名和密码都是kxy01
。启动实例xy后,在台式机上,直接在cmd环境键入:sqlplus
kxy01/kxy01@xy
就可以连接上数据库,呵呵,想来本地连接都是不费吹灰之力就行的。
之后,在
我的笔记本
上安装了Oracle9i的Client工具。然后试着直接用上述命令访问,显然是不行的,系统返回无法解析服务名的错误信息。
要实现连接到远程数据库,先了解一下相关知识吧,查了一下书。原来,
Net
Configuration
Assitant
的工具,应该就是它了。启动之:
Net
Configuration
Assitant共提供了4个配置功能:
监听程序配置,
命名方法配置,
本地网络服务名配置
目录使用配置。
要从远程位置连接Oracle数据库,必须配置Oracle网络监听程序。
Net
Configuration
Assitant
可以用于此项配置工作,启动后选择监听程序配置,一路下一步即可。
之后点开命名方法配置,系统已经默认提供了三种,其他两种也不太认识,干脆不改了,直接点后退,回到
主菜单

主菜单中,第三项是本地网络服务名配置。要通过网络访问Oracle数据库或其他服务,要使用网络服务名,该项配置允许使用由本地命名解析的网络服务名。而第四项为目录使用配置,点开一看,居然要选择
目录服务器
,我这一共就两台电脑,要什么目录服务,看来第四项不适合本实验了,显然,关键配置就在第三项:本地网络服务名配置。
将其点开,选择添加网络服务名操作,然后会询问你希望访问何种版本的Oracle数据库服务。
按照常理,我装的是Oracle9i自然应该选择第一个(Oracle8i或更高版本数据库服务),可经过实践证明,只有选择第二个(Oracle8i发行版8.0数据库或服务)才能正常实现远程连接,不明其中原因,也就只有选第二个拉。
然后输入我的数据库实例SID:xy然后选择网络协议,双机互联应该选择TCP吧,再然后填写数据库所在的
主机名
:kxyhome

端口号
采用默认的1521。
点击下一步,进行数据库连接的测试,测试成功后进行网络服务名的填写,这个名字就应该是sqlplus连接时候用的服务名了,这里我们使用:xyhome之后一切配置完成,来到命行,使用sqlplus进行连接:sqlplus
kxy01/kxy01@xyhome成功啦!

以上是关于sqlplus连接oracle数据库的主要内容,如果未能解决你的问题,请参考以下文章

oracle连接数

oracle sqlplus命令和常用函数

sqlplus如何连接oracle数据库?

oracle 用Sqlplus连接的时候中文出现乱码

通过 SQLPLUS 连接 Oracle 数据库

sqlplus连接oracle数据库