sqlplus常用命令

sqlplus常用命令
 当输入SQL语句时,SQL在SQLPLUS里的缓存中,这个缓存很小,只能允许一个SQL语句,当下一个SQL输入时,上一个SQL就被覆盖了
 为了更有效的输入和编辑SQL语句,SQLPLUS提供了一些常用命令,与SQL语句相比,SQLPLUS里的命令可以缩写.
 
 查看sqlplus里的所有命令
 help index

 查看sqlplus里某个命令的帮助
 help cmd
 
 show all 列出所有当前参数值

 
set line[size]{80|n}
 设置显示宽度 默认是80 n可以自己定义
 set line 100
 
set long 5000   --字段长度
set pages 330  --显示每页的行数


l/L  [list]   --列出当前缓冲区内容,查看sqlplus缓冲池中sql语句,只保存一条
n --整数.缓冲区中的指定行号
/ 或 r/run  --运行sqlplus缓冲池中sql语句

修改sqlplus缓冲池中sql语句:(chang delete append )
c/OLD/NEW  --替换,NEW部分不写则是删除的意思
a  --追加内容,只能加在最后。一般和n先提取行后追加
del n  --删除第n行的整行,只能删除整行


1.输入错误的修正 方法一:
 seker> select ename,sal
   2  from emq
   3  where sal <=1000;
 from emq
      *
 ERROR at line 2:
 ORA-00942: table or view does not exist
 执行后发现输入错误

 seker> l 
   1  select ename,sal
   2  from emq
   3* where sal <=1000
 L列出命令清单 发现第2行emp写成emq

 seker> 2
   2* from emq
 N命令提取指定行

 seker> c/q/p
   2* from emp
 c/OLD/NEW 替换

 seker> l
   1  select ename,sal
   2  from emp
   3* where sal <=1000
 列出当前的缓冲区查看

 seker> /
 
 ENAME    SAL
 ---------- ----------
 SMITH    800
 JAMES    950
 
 seker>
 / --执行当前缓冲区的命令


2.输入错误的修正 方法二:
 seker> select ename,sal
   2  from emq
   3  where sal <=1000;
 from emq
      *
 ERROR at line 2:
 ORA-00942: table or view does not exist
 执行后发现输入错误

 seker> l
   1  select ename,sal
   2  from emq
   3* where sal <=1000
 L列出命令清单 发现第2行emp写成emq

 seker> 2 from emp
 n text 命令 --修改指定行的内容

 seker> r
   1  select ename,sal
   2  from emp
   3* where sal <=1000

 ENAME    SAL
 ---------- ----------
 SMITH    800
 JAMES    950

 seker>  
 r --执行当前缓冲区的命令
 
 a  --追加操作
 seker> l
   1  select ename,sal
   2  from emp
   3* where sal <=1000
 seker> 1
   1* select ename,sal
 seker> a ,job,deptno
   1* select ename,sal,job,deptno
 seker> l
   1  select ename,sal,job,deptno
   2  from emp
   3* where sal <=1000
 seker> /

 ENAME    SAL JOB     DEPTNO
 ---------- ---------- --------- ----------
 SMITH    800 CLERK  20
 JAMES    950 CLERK  30

 seker>

 del n命令 不可以简写为d
 idle> l
   1  select ename,sal,job,deptno
   2  from emp
   3* where sal <=1000
 idle> d 3
 SP2-0042: unknown command "d 3" - rest of line ignored.
 idle> del 3
 idle> l
   1  select ename,sal,job,deptno
   2* from emp
 idle>

save xxx  --将当前缓冲区的内容另存到文件
 idle> l
   1  select ename,sal,job,deptno
   2* from emp
 idle> save abc.sql
 Created file abc.sql
 idle> host ls
 abc.sql  afiedt.buf  oracle  sqlnet.log
 
 idle> !cat abc.sql
 select ename,sal,job,deptno
 from emp
 /
 idle>
 

get file  --加载文件中的语句到缓冲区,只装载不运行脚本
 idle> l
   1* select * from emp
 idle> get abc.sql
   1  select ename,sal,job,deptno
   2* from emp
 idle> l
   1  select ename,sal,job,deptno
   2* from emp
 idle>

@file 或 start file --加载缓冲池中的sql,并运行
 idle> !ls
 abc.sql  afiedt.buf  oracle  sqlnet.log

 idle> @abc.sql
 idle> start abc.sql

编辑缓冲区
 通过定义编辑器 define _editor = "vi"
 或写在SQLPLUS环境变量文件中定义编辑器 $ORACLE_HOME/sqlplus/admin/glogin.sql
 之后执行ed 

 idle> !grep 'DEFINE_EDITOR' $ORACLE_HOME/sqlplus/admin/glogin.sql
 DEFINE _EDITOR = "vim"  /* linux */
 DEFINE _EDITOR = "notepad" /* windows */

 idle> ed
 Wrote file afiedt.buf
  

SPOOL 录屏 --将输出执行过程中的所有操作和输出另存到文件(屏幕录像) spool file .... spool off
    开始: spool xxx  
    结束: spool off
 idle> spool xyz.txt
 idle> select ename,job,sal from emp where sal <=1000;

 ENAME    JOB      SAL
 ---------- --------- ----------
 SMITH    CLERK     800
 JAMES    CLERK     950

 idle> spool off
 idle> !cat xyz.txt
 idle> select ename,job,sal from emp where sal <=1000;

 ENAME      JOB              SAL
 ---------- --------- ----------
 SMITH      CLERK            800
 JAMES      CLERK            950

 idle> spool off

 idle>

COL  修饰列的宽度
col 列名 for [a]n  --设置列的长度和显示类型(数值或字符)
 col ename for a8 设置ename列的显示长度为8个字符
 col sal for 99999设置sal列的显示长度为5位数字

替代变量
 用于临时存储数值.
 define 命令用于定义,显示,并查看替代变量结果
定义 查看
SQL> define name=SCOTT
SQL> define name
DEFINE NAME        = "SCOTT" (CHAR)
SQL> undefine name
SQL> define name
SP2-0135: symbol name is UNDEFINED
SQL>

引用替代变量
 对变量名添加&或者&&符号做前缀
 SQL> define name=SCOTT
 SQL> select ename,sal from emp where ename='&name';
 old   1: select ename,sal from emp where ename='&name'
 new   1: select ename,sal from emp where ename='SCOTT'

 ENAME    SAL
 ---------- ----------
 SCOTT   3000

 SQL> select '&name','&name','&name' from dual;
 old   1: select '&name','&name','&name' from dual
 new   1: select 'SCOTT','SCOTT','SCOTT' from dual

 'SCOT 'SCOT 'SCOT
 ----- ----- -----
 SCOTT SCOTT SCOTT

 SQL> undefine name
 SQL> select '&name','&name','&name' from dual;
 Enter value for name: SCOTT
 Enter value for name: king
 Enter value for name: seker
 old   1: select '&name','&name','&name' from dual
 new   1: select 'SCOTT','king','seker' from dual

 'SCOT 'KIN 'SEKE
 ----- ---- -----
 SCOTT king seker

 为了避免重复输出 可以第一次使用双&&符号 以后的单&符号就是前面双&&符号的输入值
 SQL> select '&&name','&name','&name' from dual;
 Enter value for name: seker
 old   1: select '&&name','&name','&name' from dual
 new   1: select 'seker','seker','seker' from dual

 'SEKE 'SEKE 'SEKE
 ----- ----- -----
 seker seker seker

 SQL>

------sqlplus 环境变量定义文件----------------------------
cd $ORACLE_HOME/sqlplus/admin
VIM glogin.sql   
 
glogin.sql  要求:
  1 只能写sqllus自己命令,不能写sql语句
                      不用‘;’就能执行           
        2 不确定类型的列不要写


修改提示符
SQL> set sqlp 'haichao-sql>'      --临时
haichao-sql>set sqlp '&_USER@&_CONNECT_IDENTIFIER> '

$ vim $ORACLE_HOME/sqlplus/admin/glogin.sql
set sqlp '&_USER@&_CONNECT_IDENTIFIER> '
---------------------------------------

scott用户环境破坏了怎么办?
    加载oracle自带的一个脚本
   @ ?/rdbms/admin/utlsampl.sql   ---linux下
                  scott.sql ---window下

 @   加载外部文件到缓冲池,运行
 ?   代表$ORACLE_HOME 路径

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值