sqlplus中如果输入的sql语句前面有一行写错了,怎么返回修改?
转载:
示例:
SQL>;
select * from myuser;
ID
USERNAME
PASSWORD
SJ
---------- ---------- ---------- -------------------
1
John
1234
2003-05-01
00:00:00
2
Jack
12345
2003-05-02
00:00:00
3
Rose
2345
2003-04-20
00:00:00
4
Joe
384657
2003-05-01
12:36:24
5
Tom
384655
2003-05-01
12:33:24
6
Jordan
384455
2003-05-01
12:33:36
已选择6行。
SQL>; select 8 from myuser where
2 to_char(sj,'yyyy-mm-dd')='2003-05-01';//其中8
是输错的
8
----------
8
8
8
8
方法一:
SQL>1;
SQL>c/8/*;
就可以了,你可以看看oracle的sqlplus介绍
change的语法:
c /old statement/new statement
方法二:
不管三七二十一,先执行(这样就会写入缓存中),然后edit即可。
SQL>; edit//调出编辑器重新编辑
已写入文件 afiedt.buf
1 select
* from myuser where
2*
to_char(sj,'yyyy-mm-dd')='2003-05-01'
SQL>; / //用“/”执行写入缓存中的刚编辑好的命令
ID
USERNAME
PASSWORD
SJ
---------- ---------- ---------- -------------------
1
John
1234
2003-05-01
00:00:00
4
Joe
384657
2003-05-01
12:36:24
5
Tom
384655
2003-05-01
12:33:24
6
Jordan
384455
2003-05-01
12:33:36
如果出现以下这种情况:
SQL> select table_names from user_tables;
select table_names from user_tables
*
ERROR at line 1:
ORA-00904: "TABLE_NAMES": invalid identifier
SQL> edit
Wrote file afiedt.buf
38
则:
在UNIX下要设置编辑器
define _editor=vi
然后用命令edit就可以了,但是不能永久设置;
在 $ORACLE_HOME/sqlplus/admin/glogin.sql 设置即可永久设置
或者:
在sqlplus下执行
store set login.sql
存下当前的环境设置,
这样以后执行sqlplus时就会自动读取login.sql这个文件