Oracle的缓冲区命令

首先 登陆  sqlplus / as sysdba 进入sql命令

输入查询命令

sql> select * from dual;

这时缓冲区存在了一条sql

命令:

1 list (缩写为l命令) 也可以带上数字表示第几行

SQL> list
  1* select * from dual
SQL> l
  1* select * from dual

2 run(缩写为 r或者 /)

SQL> run
  1* select * from dual
DU
--
X
SQL> /
DU
--
X
SQL> r
  1* select * from dual
DU
--
X

3 edit(缩写为e命令) 

 如果直接输入命令 会自动打开记事本 可以编辑缓冲区 ,输入后保存自动更新缓冲区

    输入ed c:/a.sql  可以修改文件的内容 不涉及缓冲区

4 clear buffer(缩写为cl buff) 清空缓冲区 

SQL> clear buffer
buffer 已清除
SQL> l
SP2-0223: SQL 缓冲区中不存在行。

5 clear scr 

  清空屏幕

6 save (缩写为sav) 该命令可以将缓冲区的数据保存到文本文件中

SQL> l
  1* select * from dual
SQL> save c:/c.sql
已创建 file c:/c.sql

7 get 该命令从文件中获取内容到缓冲区

SQL> clear buff;
buffer 已清除
SQL> get c:/a.sql
  1* select * from dual
SQL> l
  1* select * from dual

8 start(缩写为 sta或者符号@)命令 该命令 从文件中读取内容到缓冲区并执行  相当于  get命令后 run命令

SQL> clear buff;
buffer 已清除
SQL> l
SP2-0223: SQL 缓冲区中不存在行。
SQL> start c:/a.sql
DU
--
X
SQL> l
  1* select * from dual

9 append 该命令 追加内容到缓冲区

SQL> select * from
  2
SQL> list
  1* select * from
SQL> append  dual;--这里注意要第一个空格代表命令的空格  第二个空格才表示加入一个空格 所以这里有2个空格才代表一个空格
  1* select * from dual
SQL> /
DU
--
X

在演示一个过程的append

SQL> begin
  2  dbms_output.put_line('hello');   --因为这里没写完 执行肯定报错 只能append追加end;到缓冲区 才能正常执行
  3
  4  /
begin
*
第 1 行出现错误:
ORA-06550: 第 3 行, 第 0 列:
PLS-00103: 出现符号 "end-of-file"在需要下列之一时:
(
begin case declare end exception exit for goto if loop mod
null pragma raise return select update while with
<an identifier> <a double-quoted delimited-identifier>
<a bind variable> << continue close current delete fetch lock
insert open rollback savepoint set sql execute commit forall
merge pipe purge
SQL> list
  1  begin
  2  dbms_output.put_line('hello');
  3*
SQL> append end;;  --这里第一个分号表示要追加的分号  最后还要加一个分号表示命令的结束 所以 要两个分号才能代表一个分号
  3* end;
SQL> /
hello
PL/SQL 过程已成功完成。

这里如果 出现 PL/SQL 过程已成功完成 不输出内容 可以设置  set serveroutput on 打开服务器输出

10 数字输出命令 直接在sql命令中输入数字 可以将sql缓冲区对应行的sql输出

SQL> list
  1  begin
  2  dbms_output.put_line('hello');
  3* end;

此时缓冲区中存在3行数据 

SQL> 1
  1* begin
SQL> 2
  2* dbms_output.put_line('hello');
SQL> 3
  3* end;
SQL> 4
SP2-0226: 行号  无效

11 change命令(缩写为 c)  可以将某一行的字符串替换成某个字符串 这里 可以使用(!被替换的字符串!替换的字符串!) 或者使用(被替换的字符串/替换的字符串)

例如 将如上hello替换成helloworld 首先知道他在第二行 切换到第二行修改

SQL> 2
  2* dbms_output.put_line('hello');
SQL> change !hello!helloworld!
  2* dbms_output.put_line('helloworld');

改回来

SQL> 2
  2* dbms_output.put_line('helloworld');
SQL> change /helloworld/hello
  2* dbms_output.put_line('hello');

12 del命令  可以用于删除sql缓冲区中某一行的数据

SQL> l
  1  begin
  2  dbms_output.put_line('ggg');
  3  end;
  4
  5*
SQL> del    --这里如果不带参数 就表示删除最后一行
SQL> l
  1  begin
  2  dbms_output.put_line('ggg');
  3  end;
  4*

SQL> del 2   --这里带上参数 表示删除第几行
SQL> list
  1  begin
  2  end;
  3*

13 input命令  用于换行写入到sql缓冲区中  和append的区别  在于  apppend是在缓冲区的最后一行追加  input会重新创建一行 并且写入

SQL> list
  1  begin
  2* dbms_output.put_line('ggg');
SQL> input   --这里输入命令后 下面的内容可以接受输入
  3  end;
  4  /
ggg

PL/SQL 过程已成功完成。
SQL> list
  1  begin
  2  dbms_output.put_line('ggg');
  3* end;


posted @ 2016-03-09 10:20  饺子吃遍天  阅读(1054)  评论(0编辑  收藏  举报