oracle sql*plus常用命令
文章转载自:https://www.cnblogs.com/csschn/p/4864653.html
一、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的权限。
二、sql*plus工具简介
sql*plus是oracle自带的工具软件,主要用于执行sql语句,pl\sql块。
操作如下:
(1)、在D:\dev\oracle\product\10.2.0\db_1\bin\目录下的sqlplusw.exe。(D:\dev\oracle\为oracle安装目录)
(2)、在运行栏中输入“sqlplus”即可
三、sqlplus dos工具简介
(1)、概述:sqlplus是在dos下操作oracle的工具,其功能和sql*plus相似。
(2)、操作如下:在运行栏中输入“sqlplus”即可
四、PLSQL Developer工具,需要自己安装,推荐大家使用
五、sql*plus常用命令
补充:有关查看PDB数据库有关命令:https://www.cnblogs.com/kerrycode/p/17039174.html
alter pluggable database all open;(打开)
1)、连接命令
1.conn[ect]
用法:conn 用户名/密码@网络服务名 [as sysdba/sysoper] (@后面加网络服务名一般用于网络连接,本地连接暂且不用了解)
说明:当用特权用户身份连接时,必须带上as sysdba或是as sysoper
eg、
SQL> show user
USER 为 "SCOTT"
SQL> conn system/oracle@orcl
已连接。
SQL> show user
USER 为 "SYSTEM"
SQL>conn sys/oracle as sysdba
已连接。
以上命令实现类似切换用户的效果
也可以直接 conn sys as sysdba,再输入口令
2.disc/disconn/disconnect
说明: 该命令用来断开与当前数据库的连接
3.pssw[ord]
说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。
eg、
SQL> conn scott/oracle
已连接。
SQL> passw
更改 SCOTT 的口令
旧口令:
新口令:
重新键入新口令:
口令已更改
SQL>
4.show user
说明: 显示当前用户名
show pdbs(请在sys用户下打开,保证足够权限)
说明:显示当前可用pdb数据库
SQL> show user
USER 为 "SYS"
SQL> show conn_name
CON_NAME
------------------------------
LIBPDB1
说明:显示当前连接的数据库名
SELECT NAME FROM v$database;
说明:显示当前所有数据库实例信息(v$database 是一个 Oracle 数据字典视图,包含了有关当前数据库实例的信息, name是其中的一个列名)
5.exit
说明: 该命令会断开与数据库的连接,同时会退出sql*plus
6.clear screen
清空屏幕
7.alter session set container=CDB$ROOT;
alter session set container=orclpdb;
说明:切换连接到相应容器数据库/pdb数据库
8.
2)、文件操作命令
1.start和@
说明: 运行sql脚本
案例: sql>@ d:\a.sql或是sql>start d:\a.sql
2.edit
说明: 该命令可以编辑指定的sql脚本
案例: sql>edit d:\a.sql,这样会把d:\a.sql 这个文件打开
3.spool
说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例: sql>spool d:\b.sql并输入sql>spool off
eg、
sql>spool d:\b.sql;
sql>select * from emp;
sql>spool off;
3)、交互式命令
1.&
说明:可以替代变量,而该变量在执行时,需要用户输入。
select * from emp where job='&job';
4)、显示和设置环境变量
概述:可以用来控制输出的各种格式,set show 如果希望永久的保存相关的设
置,可以去修改glogin.sql 脚本
1.linesize
说明:设置显示行的宽度,默认是80个字符
show linesize
set linesize 90
2.pagesize说明:设置每页显示的行数目,默认是14
用法和linesize 一样
至于其它环境参数的使用也是大同小异
5>控制CDB和PDB数据库
1.启动和关闭CDB
[oracle@localhost ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on 星期二 3月 15 11:05:01 2016
Copyright (c) 1982, 2014, Oracle. All rights reserved.
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 754974720 bytes
Fixed Size 2928968 bytes
Variable Size 524291768 bytes
Database Buffers 222298112 bytes
Redo Buffers 5455872 bytes
数据库装载完毕。
数据库已经打开。
SQL> set linesize 120
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
-------------------------------- ------------------------
CDB OPEN
SQL> select name,cdb from v$database;
NAME CDB
------------------ ------
CDB YES
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
2.关闭CDB
<pre class="sql" name="code">SQL> SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
2.启动和关闭PDB
在CDB环境中,我们在SQL*Plus工具不用切换到PDB数据库管理模式,可以使用ALTER PLUGGABLE DATABASE命令打开单个数据PDB数据库、打开所有PDB数据库、除以外数据库,具体方法如下:
1.ALTER PLUGGABLE DATABASE命令启动PDB
oracle@localhost ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on 星期二 3月 15 11:55:42 2016
Copyright (c) 1982, 2014, Oracle. All rights reserved.
连接到:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 MOUNTED
4 PDB2 MOUNTED
5 ORCL MOUNTED
SQL> alter pluggable database pdb1 open;
插接式数据库已变更。
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
4 PDB2 MOUNTED
5 ORCL MOUNTED
关闭PDB
SQL> alter pluggable database pdb1 close;
插接式数据库已变更。
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 MOUNTED
4 PDB2 READ WRITE NO
5 ORCL READ WRITE NO
3.SQL*Plus启动PDB
在SQL*Plus中使用传统的STARTUP命令启动PDB数据库,需要我们连接到的CDB数据库切换到要被启动的PDB数据库,执行STARTUP命令。在执行STARTUP命令之前需要我们执行ALTER SESSION SET CONTAINER命令从CDB模式切换到PDB模式。
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
4 PDB2 MOUNTED
5 ORCL MOUNTED
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> alter session set container=pdb2;
会话已更改。
SQL> startup
插接式数据库已打开。
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
4 PDB2 READ WRITE NO
3.随CDB启动PDB数据库
默认情况下,在CDB 启动的时候,所有的PDB 都是mount状态,也没有默认的机制,在CDB启动时自动启动PDB,我们可以在CDB数据库中创建触发器来实现PDB的自动打开。
SQL> SHOW CON_NAME
CON_NAME
------------------------------
CDB$ROOT
SQL> CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
触发器已创建
SQL> SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> STARTUP
ORACLE 例程已经启动。
Total System Global Area 754974720 bytes
Fixed Size 2928968 bytes
Variable Size 524291768 bytes
Database Buffers 222298112 bytes
Redo Buffers 5455872 bytes
数据库装载完毕。
数据库已经打开。
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
4 PDB2 READ WRITE NO
5 ORCL READ WRITE NO