web-dev-qa-db-ja.com

SQL Plusコマンドライン:前のコマンドを返さない矢印キー

Fedoraコア532ビット以上のOSでOracle10g ExpressEditionを使用しています。問題は、SQL Plusコマンドラインを使用してSQLステートメントを作成すると、キーボードの上下の矢印キーを使用すると、以前に入力したコマンドをプロンプトに戻すことができないことです。シェルを使用している場合、これは非常に簡単ですが、このOracleコマンドラインインターフェイスではまったく機能しません。これは、上矢印キーまたは下矢印キーを押したときに実際に起こっていることの例です。

SQL>ドロップテーブルメールオーダー;

テーブルが削除されました。

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

8
user1167753

最後に入力したコマンドのみを再実行する必要がある場合は、フォワードスラッシュ「/」が機能します。 /を押すと、Enterキーが最後のステートメントを再実行します。

SQL> select sysdate from dual;

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

SQL> /

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

SQL> 
8
rainu

'l'コマンドは、最後に実行されたコマンドを表示します( source:krenger.ch ):

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

それ以上のものを取得するには、履歴をオンにします( ソース:dba-Oracle ):

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

SQL * Plusは、この機能をすぐに提供することはできません。それを実行するには、セットアップする必要があります rlwrap

SQL * Plusが提供するすべてをサポートするだけでなく、以前のコマンド履歴などの最新の機能も含む新しいコマンドラインインターフェイスを構築しました。 SQLcl と呼ばれます。コマンド履歴には、前のセッションからでも、最後の100個のステートメント/スクリプトが記憶されます。

3
thatjeffsmith