前提条件:
CentOS7.6
已安装Oracle 11g R2
拥有用户Oracle
一、安装rlwrap
Linux下sqlplus不能使用光标箭头,解决办法:安装rlwrap。
获取rlwrap
# wget https://github.com/hanslub42/rlwrap/releases/download/v0.43/rlwrap-0.43.tar.gz
安装readline*(rlwrap依赖)
# yum -y install readline*
解压安装rlwrap包
# tar -xzvf rlwrap-0.43.tar.gz
# cd rlwrap-0.43
# ./configure
# make
# make install
切换Oracle,添加sqlplus别名
# su - oracle
$ cd
$ vim .bash_profile
在文件中添加
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
:wq
$ source .bash_profile #立即生效
这样在sqlplus中就敲命令就很方便了,类似mysql。
二、oracle用户sys和system
Oracle安装会自动的生成sys用户和system用户
(1)、sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install
(2)、system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是manager
(3)、一般讲,对数据库维护,使用system用户
sys和system这两个用户最大的区别是在于有没有create database的权限。
三、sqlplus工具简介
Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql语句。
我们通常所说的DML、DDL、DCL语句都是sql语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,
并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。
除了sql语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,
它们一般用来对输出的结果进行格式化显示,以便于制作报表。
四、sqlplus常用命令
连接命令
1.conn[ect]
用法:conn 用户名/密码@网络服务名 [as sysdba/sysoper]
说明:当用特权用户身份连接时,必须带上as sysdba或是as sysoper
例如:
SQL> show user USER 为 "SCOTT" SQL> conn system/oracle@orcl 已连接。 SQL> show user USER 为 "SYSTEM"
LINUX中以系统身份连接:
SQL>connect / as sysdba
或者
# sqlplus / as sysdba
以上命令实现类似切换用户的效果
2.disc/disconn/disconnect
说明: 该命令用来断开与当前数据库的连接
3.pssw[ord]
说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。
例如:
SQL> conn scott/oracle 已连接。 SQL> passw 更改 SCOTT 的口令 旧口令: 新口令: 重新键入新口令: 口令已更改 SQL>
4.show user
说明: 显示当前用户名
5.exit
说明: 该命令会断开与数据库的连接,同时会退出sql*plus
5.clear screen
清空屏幕
文件操作命令
1.start和@
说明: 运行sql脚本
案例:
sql>@ /home/oracle/a.sql
或是
sql>start /home/oracle/a.sql
2.edit
说明: 该命令可以编辑指定的sql脚本
案例:
sql>edit /home/oracle/a.sql
这样会把/home/oracle/a.sql这个文件打开
3.spool
说明:该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例:
sql>spool /home/oracle/a.sql
sql>select * from emp;
sql>spool off