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