SQLPLUS常用命令

长平狐 发布于 2013/09/17 15:12
阅读 6K+
收藏 1

一.SQLPLUS登陆命令:

使用sqlplus:

sqlplus /nolog

conn / as sysdba

connect / assysdba

conn sys/oracle assysdba

SQL>conn bys/bys

已连接。

SQL>show user

USER 为 "BYS"

使用服务名登陆,as sysdba即使用SYSDBA用户权限登陆

SQL>conn sys/oraclesys@orcl as sysdba

已连接。

查看用户权限:

SQL>show user

USER 为 "SYS"

SQL>conn sys/oraclesys@orcl as sysoper

已连接。

SQL>show user

USER 为 "PUBLIC"

登陆时可以使用IP+端口+服务名或主机名+端口+服务名

SQL>conn bys/bys@192.168.0.181:1521/orcl

已连接。

SQL>show user

USER 为 "BYS"

SQL>conn scott/tiger@xporacle:1521/orcl

已连接。

SQL>show user

USER 为 "SCOTT"

总结如下:

直接在SQLPLUS启动时输入用户名密码的多种格式。

sqlplusscott/tiger

sqlplusscott/tiger@orcl

sqlplus scott/tiger@192.168.2.18:1521/orcl

sqlplusscott/tiger@xporacle:1521/orcl

sqlplussys/oraclesys as sysdba


断开连接不退出SQLPLUS——disconnect,断开并退出SQLPLUS exit

注:sqlplus scott/tiger@orcl登陆时:加@,是通过监听器(IPC或网络方式)连接到数据库。

        sqlplus scott/tiger登陆时:不使用@时,SQLPLUS程序以IPC--进程间通信方式直接与本机的ORACLE实例进行通信


二.登陆后查询用户角色权限:--以什么角色登陆

查看当前用户

Show user

查询当前用户有哪些角色

SQL> select * from user_role_privs;

查询角色都有哪些权限

只能当前用户查询自己的权限,如BYS是DBA用户,也不能查出SCOTT用户的RESOURCE角色有哪些权限,SCOTT自己则可以。

SYS用户是可以查询的。

SCOTT用户查询

SQL>  select * from role_sys_privs whererole='RESOURCE';


三.SQLPLUS文件操作命令:

SQLPLUS基本操作

1.spool将屏幕显示及查询结果输入到指定文本文件中

spool d:\1.txt

select * from emp;

spool off

2.执行和编辑指定位置的SQL脚本

start d:\test.sql

@ d:\test.sql

执行当前目录下的SQL脚本,即:登陆SQLPLUS时的目录,示例如下:

[oracle@bys001 oradiag_oracle]$ ls
a.sql  diag
[oracle@bys001 oradiag_oracle]$ cat a.sql
select sysdate from dual;
[oracle@bys001 oradiag_oracle]$ sqlplus bys/bys
BYS@bys1>@a.sql

SYSDATE
---------
05-SEP-13


编辑指定的SQL脚本

edit d:\test.sql

3.&替代变量

如:select * from emp where empno=&;

会提示输入EMPNO的值。交互式

4.将当前SQL缓冲构内SQL语句保存到指定文件

save d:\test2.sql

将文件中SQL语句调入SQLPLUS缓冲区

get d:\test2.sql

显示缓冲区内语句

list

注意:单引号和双引号内大小写敏感。

关键字不能缩写,也不能跨行书写,单引号内也不跨行写。

每个子句是一行。

字符串用单引,列别名用双引。

标点符号要用英文标点,中文出错。

 

三.SQLPLUS中显示设置-列长、分页


1.更改分页、行宽设置

show linesize

show pagesize

set linesize 100       ——默认80字符

set pagesize 20      ——默认14行

SQL> set numwidth     38好像设置数字型的默认显示宽度 set num 4 ,所以显示会有变 ## 

2.设置指定显示的列名的宽度--列是字符及数字

 col username format a20     设置 username列的列宽是20个字符-----字符列宽 

 col username for a4

BYS@bys1>col aa format 99,999,999      设置abc列的列宽是8位,并用逗号隔开---数字列宽
BYS@bys1>select 100*100*100 as aa from dual;

         AA
-----------
  1,000,000
BYS@bys1>col aa format 99999999
BYS@bys1>select 100*100*100 as aa from dual;

       AA
---------
  1000000

清除指定显示的列名的宽度设置

SQL> col members clear    清除members列的列宽设置,恢复为默认值。

将所有列的显示属性设为缺省值

SQL>CLEAR COLUMNS

显示列值时,如果列值为NULL值,用text值代替NULL值
SQL>COL COMM NULL text
显示列的当前的显示属性值
SQL> COLUMN column_name

清屏命令:

clear screen   --LINUX下

clear

或者使用系统的清屏命令如WINDOWS host cls。LINUX   !clear

四、将一个数据库中的一些数据拷贝到另外一个数据库(如将一个表的数据拷贝到另一个数据库)

COPY {FROM database | TO database | FROM database TO database}
{APPEND|CREATE|INSERT|REPLACE} destination_table
[(column, column, column, ...)] USING query
 
sql>COPY FROM SCOTT/TIGER@HQ TO JOHN/CHROME@WEST  
create emp_temp
USING SELECT * FROM EMP

 SQLPlus中的快速复制和粘贴技巧:
1] 鼠标移至想要复制内容的开始
2] 用右手食指按下鼠标左键
3] 向想要复制内容的另一角拖动鼠标,与Word中选取内容的方法一样
4] 内容选取完毕后(所选内容全部反显),鼠标左键按住不动,用右手中指按鼠标右键
5] 这时,所选内容会自动复制到SQL*Plus环境的最后一行


原文链接:http://blog.csdn.net/q947817003/article/details/11180137
加载中
返回顶部
顶部