Oracle 相关的工具使用 SQL Developer , sqlplus
Oracle 相关的工具使用 SQL Developer , sqlplus
一,Oracle SQL Developer 连接数据库
今天在连接sqldeveloper服务器时遇到了很多问题,但最终还是通过网上的博客解决了问题,我就在总结一下我的解决过程。
一.界面
首先,Oracle SQL Developer 的连接数据库 界面是这样的,: 先填写连接名,用户名,以及口令;Oracle提供了system、scott等多种用户名,这里填写Scott(因为Scott中有几张用于测试的数据表),scott的初始口令为tiger,如果你已经修改,那就按修改的来。
这是最基本的设置,接下来的设置才是关键。
二.关键问题(设置SID,设置环境变量)
首先我们看到“连接类型”这一选项,这里我们只设置基本、TNS两个选项。
一.设置SID
1.首先设置SID,默认填写的是‘xe’,这需要修改。如果不修改“xe”,并且在设置好环境变量的前提下点击“测试”,可能会显示IO异常:The Network Adapter could not establish the connection. 具体修改SID的方法为:
- 打开dos命令窗口1. 输入:sqlplus 进入Oracle1. 根据提示输入用户名system和相应口令(不能输入用户名scott,查不到)1. 输入:select instance_name from V$instance;1. 查看 SID,我的SID为orcl,如下图所示:
输入SID,如下图:
二.设置TNS的“网络别名”
在没有设置环境变量之前,网络别名按钮是无效的。必须先设置环境变量。设置TNS_ADMIN环境变量指向tnsnames.ora文件所在目录。方法如下所示:
新建环境变量后,再打开Oracle SQL Developer,查看“网络别名”,选择ORCL选项。
点击测试:成功。
大功告成。
二,sqlplus连接oracle数据库
(连接本地oracle数据库和连接远程的oracle数据库)
虽然我们现在平时都是使用PLSQL Developer这个软件工具了,但是我们还是要了解sqlplus

想要成功连接本地的oracle数据库,首先要确保本地的这2个服务是处于启动状态
(重要)OracleOraDb11g_home1TNSListener (oracle的监听器服务)(重要)OracleServiceORCL (oracle的数据库服务)

如下图是连接本地oracle数据库

scott是oracle数据库中预设的一个用户,我们一般把scott用户的密码设置为tiger,原因是scott是一个人名,scott这个人是oracle公司的第一个员工,据说,据说scott这个人为oracle公司做出比较大贡献,所以oracle公司的老板为了纪念他,所以在oracle数据库中设置了scott这个用户,而scott这个家伙养了一直宠物猫,这只猫的名字就叫tiger(老外真有意思,居然把猫取名叫tiger,果然够霸气)
**注意:**如果scott用户被锁了,可以先解锁,解锁完后再修改一下scott的密码
开始–>运行–>cmd 输入 :sqlplus /nolog 回车 输入 :connect / as sysdba 回车 用户解锁 : alter user scott account unlock 回车 修改密码:alter user scott identified by tiger
如下图:
win键 + R再输入cmd
**输入 :sqlplus /nolog 回车输入 :connect / as sysdba 回车或者conn / as sysdba 回车用户解锁 : alter user system account unlock; 回车(注意:语句末尾要记得加;分号)**修改密码:alter user system identified by system;(注意:语句末尾要记得加;分号)还有一点要注意:修改密码时,密码的第一个字符不能是数字



conn是connect的缩写,两者效果完全一样
sqlplus连接上数据库后,可以用conn来切换/转换用户。connect和conn一样,只不过conn是connect的缩写


oracle数据库中有2个文件很重要
listener.ora tnsnames.ora
文件所在的目录是D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN(**注 意:**每个人的oracle数据库安装目录是不同的)



测试数据库是否连通,可以使用命令tnsping 主机字符串tnsping可以测试与远端数据库服务连接是否正常
比如:
tnsping orcl 注意这里的orcl表示主机字符串,就是****tnsnames.ora文件中的那个名字
tnsping LINK192.168.117.66 注意LINK192.168.117.66表示主机字符串,就是****tnsnames.ora文件中的那个名字
**连接远程数据库,有2种写法,**如下图
写法1
sqlplus 用户名/密码@192.168.117.66:1521/orcl 注意端口号后面跟的orcl表示数据库的服务名
写法2
sqlplus 用户名/密码@//192.168.117.66:1521/orcl 注意端口号后面跟的orcl表示数据库的服务名
还有一种写法,就是在@后面写主机字符串,如下图





接下来,我们说正事,使用sqlplus怎么连接本地oracle数据库和怎么连接远程oracle数据库
一,使用sqlplus怎么连接本地oracle数据库
先使用cmd命令进入dos窗口
**1.**sqlplus 用户名/密码 比如:sqlplus system/system

也可以sqlplus 用户名/密码@本机ip地址:端口号/本地数据库服务名 比如:sqlplus system/system@127.0.0.1:1521/orcl或者
sqlplus system/system@localhost:1521/orcl
注意:****这里的orcl是数据库服务名
注意:sqlplus system/system和sqlplus system/system@127.0.0.1:1521/orcl和sqlplus system/system@localhost:1521/orcl是等价的,都是连接本地oracle数据库


注意如果是sys用户登录,在密码后面一定要加as sysdba子句,如下




**2.**sqlplus /nolog
sqlplus /nolog这句话的意思就是仅仅打开sqlplus这个软件界面,但是不登录数据库(nolog表示不进行登录,仅仅是进入sqlplus软件界面而已,就相当于仅仅打开QQ的登录界面,但是不登录QQ)

如果没有/nolog参数,sqlplus会提示你输入用户名和密码,如下图

3.****指定登录身份sqlplus 用户名/密码 as sysdba比如sqlplus system/system as sysdba

4.指定主机字符串,比如sqlplus scott/tiger@LINK192.168.117.66或者sqlplus scott/tiger@orcl
注意:如下图orcl和LINK192.168.117.66****是主机字符串的名字,该名字可以随便取,可以理解成这是一个别名,通过这个别名去连接真正的远程的数据库


比如sqlplus scott/tiger@LINK192.168.117.66

这里的orcl和LINK192.168.117.66其实可以理解成主机字符串,其实就是一个别名,通过这个别名去连接真正的IP,我这里的****orcl和LINK192.168.117.66设置的还是我本地127.0.0.1的地址,所以还是表示连接我本地的oracle数据库,如果想连接远程的oracle数据库,你们自己改一下ip地址和端口号和服务名,改成远程数据库的IP地址和远程数据库的端口号和远程数据库的服务名即可
二,使用sqlplus怎么连接远程oracle数据库
1.使用具体的ip地址
sqlplus 用户名/密码@远程数据库的IP地址:远程数据库的端口号/远程数据库的服务名
比如sqlplus system/system@127.0.0.1:1521/orcl或者sqlplus system/system@192.168.117.88:1521/orcl
因为我这里没有88的地址,肯定是连接不上,我这里只是演示一下,怎么通过具体的ip地址的方式来连接远程数据库

2.使用主机字符串
tnsnames.ora文件中,如果我们想多配置几个主机字符串,那我们可以手动拷贝一个主机字符串,然后手动改一下主机字符串的名字和IP地址和服务名和端口号,如下:标红的就是需要改动的,可以根据你自己的需要来改。
LINK192.168.117.88 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.117.88)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )
tnsnames.ora文件中的LINK192.168.117.88,类似于一个别名,通过这个别名,我们可以远程连接到192.168.117.88这台服务器上的oracle数据库
**注意:**LINK192.168.117.88是主机字符串的名字,该名字可以随便取,可以理解成这是一个别名,通过这个别名去连接真正的远程的数据库

使用主机字符串来连接远程数据库,如下图
因为我这里没有88的地址,肯定是连接不上,我这里只是演示一下,怎么通过主机字符串的方式来连接远程数据库

PLSQL Developer软件也是去读取tnsnames.ora这个文件,如下图

当然啦,我们也可以在文本框中手动输入具体的IP地址和端口号和数据库服务名**,如下图**


还有一点顺便说一下,如果我们使用sqlplus登录了数据库,但是我们想在不退出的情况下,切换用户或者是切换成其他远程的数据库?
切换成其他远程的数据库
使用conn
使用conn 用户名/密码@远程数据库IP:远程数据库端口号/远程数据库服务名
切换成其他用户

顺便说一下,sqlplus 用户名/密码这种方式连接数据库,会暴露密码,如下图

而直接写sqlplus这种方式,不会暴露密码,如下图
