amberoracle 2012-02-21
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
l列出当前缓冲区内容
n整数.缓冲区中的指定行号
c/OLD/NEW 替换 NEW部分不写则是删除的意思
/ 或 r 运行
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>
将当前缓冲区的内容另存到文件
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>
加载文件中的语句到缓冲区
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>