首先 登陆  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

这里如果 出现 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;