SQL Plus命令行:箭头键不返回以前的命令

时间:2016-02-09 10:29:05

标签: linux sqlplus

我在Fedora core 5 32+位操作系统上使用Oracle 10g Express Edition。问题是当我使用SQL Plus命令行来创建SQL语句时,当我使用键盘上的向上和向下箭头键时,我无法在提示符处返回先前键入的命令。当我使用shell时,这很容易,但是在这个Oracle命令行界面中,它根本不起作用。以下是按下向上或向下箭头键时实际发生的示例。

SQL> drop table mailorders;

表格掉线了。

SQL> ^ [[A ^ [[A ^ [[A ^ [[A ^ [[A ^ [[A ^ [[A ^ [[A ^ [[A ^ [[A ^ [[A ^ [[A

4 个答案:

答案 0 :(得分:5)

如果您只需要重新运行最后输入的命令,那么forwardslash" /"会工作。 点击/然后输入键将重新运行最后一个语句。

SQL> select sysdate from dual;

SYSDATE
--------
03-12-17

SQL> /

SYSDATE
--------
03-12-17

SQL> 

答案 1 :(得分:4)

“ l”命令将显示最后运行的命令(source: krenger.ch):

SQL> l
  1* select owner, count(1) from dba_tables group by owner
SQL>

要获取更多信息,请打开历史记录(source: dba-oracle):

SQL> set history on
SQL> history
  1  select * from dual;
  2  select sysdate from dual;
  3  show history

答案 2 :(得分:3)

SQL * Plus并不提供开箱即用的功能。您必须设置rlwrap才能实现目标

我们已经构建了一个新的命令行界面,它支持SQL * Plus提供的所有功能,但也包含更多现代功能,例如以前的命令历史记录。它被称为SQLcl。命令历史记录会记住您最近的100个语句/脚本,甚至是之前的会话。

答案 3 :(得分:1)

在SQL plus命令中,您可以通过以下方式获得上一个命令:

1-显示上一个命令

SQL> history  
  1  l
  2  show history
  3  select * from dual;

2-从先前版本运行特定命令

SQL> history 3 run

D
-
X

3-从上一个编辑特定命令

SQL> history 2 edit

PS:在使用历史记录之前,您需要通过以下方式激活:

SQL> set history on