最近刚接触了Oracle数据库,刚入门的时候,经常都是使用SQL Developer进行数据库实例以及用户的登录,很少使用SQLPLUS来对数据库进行操作,但是数据库服务器通常是运行在Linux环境之下,通过sqlplus对数据库进行管理,因此,对于sqlplus如何对数据库进行管理与开发还是很重要的。

一开始我使用sqlplus登录Oracle数据库的时候,碰到了许多问题,我想,这应该也是很多初学者经常会遇到的问题,接下来我就简单介绍一下,如何通过sqlplus登录数据库实例以及进行实例之间的切换还有用户之间的切换。

首先,至少要确保以下几个服务已经打开:

这张图中已经显示了我电脑中所有Oracle服务,其中,当我们要通过sqlplus来登录数据库实例时,必须确保监听服务已经打开,即上图中的OracleOraDB12Home1TNSListner服务,否则,在登录时就会报Ora-12560的错误:

即如上图所示,实际上,也可以通过命令行来启动监听服务,这就涉及到监听配置文件listner.ora的配置,这里就不详细介绍,感兴趣的可以参考以下博客:

1、https://wwwblogs/qianyuliang/p/6520515.html;

2、https://blog.csdn/dragoo1/article/details/8528852;

与此同时还要打开你所想要连接的数据库实例后台进程服务,即OracleSeviceSID_NAME,SID_NAME为数据库实例名称。

上述两个服务必须打开,才能够通过SQLPLUS连接到你想要连接的数据库实例。

启动SQLPLUS时,可以在sqlplus命令后直接指定用户名和口令,这时系统不会提示输入用户名和口令,而是直接登录到数据库服务器,格式是:用户名/口令。例如:

sqlplus C##HOTEL/123456

连接成功的话会显示已连接。

如果在一台计算机创建了多个数据库实例,为了登录到正确的数据库,在进入SQLPLUS之前,先要设置环境变量ORACLE_SID,将它的值设为你所想要登录的数据库实例的SID,一般和数据库实例同名,(值得注意的是,你想连接的数据库实例后台服务器服务必须打开,即OracleSeviceSID_NAME,如果不打开,那么即边设置了环境变量,连接的时候也会报错Ora-12560)。

示例如下(我打开了OracleSeviceHSD和OracleSeviceSample两个数据库实例的后台服务进程,可以看到一开始登录时没有指定数据库,登录上的是HSD,修改了ORACLE_SID的值后,登录上了SAMPLE):

然后重新设置ORACLE_SID为SAMPLE后,再次以SYS用户登录当前默认数据路实例,然后使用show parameter instance_name命令,发现登录的数据库实例已经变成了SAMPLE:

在默认情况下,SQLPLUS和Oracle服务器位于同一台计算机上,启动SQLPLUS时,它将自动登录到本机的数据库服务器上。如果SQLPLUS和Oracle服务器不在同一台计算机上,那么在登录时还要指定所使用的网络服务名。例如

sqlplus C##HOTEL/123456@netsvr

其中netsvr是已经定义的网络服务名,这时SQLPLUS和Oracle将通过Oracle Net进行通信,无论采用哪种方式,登录成功后及那个出现SQLPLUS的提示符“SQL>”。

退出SQLPLUS时,在提示符之后输入quit或exit命令就可以了,如果要在不退出SQLPLUS的情况下断开与数据库服务器的连接,那么输入disconnect命令即可,若要重新连接,或者在已经连接了一个用户的情况的下以另一个用户的身份连接,则使用conn命令,使用格式如下:

conn username/password

如果是sys用户,后面还要加上as sysdba或者as sysoper,如果是远程登录,还要再用户名和口令之后输入网络服务名。

下面实我切换用户的示例(可以看到一开始登录的用户为C##HOTEL,切换的用户为C##USER01):

如何获取帮助信息?

命令格式为SQL>help 你所想要查找的帮助命令

例如输入help conn,下面就会显示出conn命令的详细信息与使用方式:

更多推荐

oracle切换实例启动,SQLPLUS登录以及切换Oracle数据库实例和用户