今天在弄oracle sqlplus的时候需要写一个存储过程,用ed进入之后,退不出来了。
从网上找到下面的方法处理:
如何退出sqlplus ed操作
今天进入sqlplus ,执行完语句后用 ed修改,但不会退出了,如下:
SQL> select * from dba_tables
SQL> ed
Wrote file afiedt.buf
38
:q
?
/
?
然后在网上找了半天才找到。下面就写出来:
SQL>define _EDITOR=vim
再edi就可以进入vim
或者在操作系统 export EDITOR=vi
[oracle@localhost pfile]$ export EDITOR=vi
[oracle@localhost pfile]$ sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production on Mon May 15 16:40:02 2006
SQL> select sysdate from dual;
SQL> ed
~~
~
~
此时退出方法与正常情况下vi退出方法一样。
SQL> define _editor=vim
SQL> ed
Wrote file afiedt.buf
/
SQL> ed
Wrote file afiedt.buf
/
其实想出现的效果是出现一个编辑vi的窗口
SQL> define _editor=vim
SQL> ed
Wrote file afiedt.buf
/
~
~
"afiedt.buf" 2L, 9C written
然后就出现了
为了永久保存这个
在$ORACLE_HOME/dbs/ 下查找login.sql文件,如果没有就创建一个空文件,然后在文件中加入这样一句话:
define _editor=vim
添加到$ORACLE_HOME/sqlplus/admin/glogin.sql也行的(我是添加到这里的)
ok!