13.26 HISTORY

構文

HIST[ORY] [[[N] {R[UN] | E[DIT] | D[ELETE]}] | CLEAR | LIST ]

ユーザーは以前使用したSQL*Plus、SQLまたはPL/SQLのコマンドを現在のセッションの履歴リストから実行、編集または削除できます。SET HISTORYコマンドを使用することで、現在のSQL*Plusセッションで履歴の記録を有効または無効にできます。

HISTORYコマンドで、次の操作を実行できます。

  • コマンド履歴リストのすべてのエントリをリストします。

  • コマンド履歴リストのエントリを実行します。

  • コマンド履歴リストのエントリを編集します。

  • コマンド履歴リストからエントリを削除します。

  • コマンド履歴リストのすべてのエントリを消去します。

HIST[ORY]

コマンド履歴リストのすべてのエントリをリストします。

N

コマンド履歴リストのエントリを表します。アスタリスク(*)は、コマンド履歴リストで最後に使用されたコマンドを示します。Nを省略した場合は、最後に使用されたコマンドでRUN、EDITまたはDELETE操作が実行されます。

R[UN]

コマンド履歴リストからエントリNまたは最後に使用したコマンドを実行できます。

E[DIT]

デフォルトのテキスト・エディタを使用して、コマンド履歴リストのエントリNまたは最後に使用されたコマンドを編集できます。コマンド履歴リストのエントリNを編集して変更を保存すると、リストの末尾に新規エントリが作成されます。コマンド履歴リストのエントリ数が最大限度に到達すると、新規エントリに対応するためリスト内で最も古いエントリが消去されます。

D[ELETE]

コマンド履歴リストからエントリNまたは最後に使用したコマンドを削除できます。履歴リストからエントリを削除すると、リストが並べ替えられ、最新の変更が反映されます。

CLEAR

履歴リストのすべてのエントリを消去できます。消去すると、履歴リストはリカバリできません。

LIST

履歴リストのすべてのエントリをリストします。これはHIST[ORY]コマンドを単独で使用するのと同じです。

使用方法

デフォルトのテキスト・エディタの名前を保持するには、SQL*PlusのDEFINEコマンドを使用して変数_EDITORを定義します。たとえば、EDITで使用するエディタをviとして定義するには、次のコマンドを入力します。

DEFINE _EDITOR = vi

_EDITORが未定義の場合、EDITは、デフォルトのオペレーティング・システム・エディタの起動を試みます。詳細は、「DEFINE」コマンドを参照してください。

例13-1 例

次の例では、履歴リストの5番目のエントリを実行します。

SQL>history 5 run

次の例では、履歴リストの3番目のエントリを編集できます。

SQL>history 3 edit

次の例では、履歴リストから2番目のエントリを削除できます。

SQL>history 2 delete

次の例では、履歴リストからすべてのエントリを削除できます。

SQL>history clear

次の例は、履歴リストで最後に使用されたコマンドを編集および実行する方法を示しています。

SQL>history edit
SQL>history run

次の例は、コマンド履歴を有効または無効にする方法およびコマンド履歴ステータスを確認する方法を示しています。

SQL> set history on
SQL> show history
History is ON and set to "100"
SQL> set history off
SQL> show history
History is OFF
SQL> set history 1000
SQL> show history
History is ON and set to "1000"

次の例は、履歴リストのすべてのエントリをリストする方法を示しています。

SQL> history
  1  show history
  2  show user
  3  desc dual
* 4  select * from dual;

アスタリスク(*)は、コマンド履歴リストで最後に使用されたコマンドを示します。

次の例は、履歴リストのすべてのエントリをリストしてから、2番目のエントリを実行する方法を示しています。

SQL> history
  1  show history
  2  show user
  3  desc dual
* 4  select * from dual;
SQL> history 2 run
USER is "SYSTEM"
SQL> history
  1  show hist
* 2  show user
  3  desc dual
  4  select * from dual;