SQL > の状態でコマンド履歴を確認・編集・実行する方法
SQL*Plus コマンドの
- define _editor=エディタ(一つ前の文を変更して実行)
- LISTコマンドを使う方法(1文のみ確認)
- HISTORYコマンド(トラック開始後すべての文確認&番号指定して実行)
を使う方法があります。
通常
SQL>
この状態で↑↓ボタンでコマンド履歴をさぐろうとすると
SQL> ^[[B^[[A
のようになってしまう。
define _editor=エディタ(一つ前の文を変更して実行)
defineコマンドで編集時に使用するエディタを指定します。
viを使う場合
SQL> define _editor=vi
普通のテキストエディタを使う場合
SQL> define _editor=gedit
editコマンドで一つ前の文を編集
SQL> edit
省略も可能
SQL> ed
geditを指定した場合はアプリが開かれるので、そこで修正します。
/ コマンドで修正したコマンドを実行
Wrote file afiedt.buf
1* select 3 from dual
SQL> /
3
-------
3
設定ファイルでエディタを定義しておく
$ORACLE_HOME/sqlplus/admin/glogin.sql
を編集しておけば、DBに接続するたびにdefineをする必要がなくなります。以下の記事が参考になります。
SQLPlusの環境を整備する - オラクル・Oracle SQLPlus リファレンス
Listコマンド
「;」でも可能です。
SQL > List
1 SELECT LAST_NAME, DEPARTMENT_ID, JOB_ID
2 FROM EMP_DETAILS_VIEW
3 WHERE JOB_ID = 'SH_CLERK'
4* ORDER BY DEPARTMENT_ID
ドキュメント
set HISTORY ONとHISTORY
SQL>set HIST[ory] ON <==コマンド履歴を有効にします
コマンドを実行します:
SQL> create public database link test connect to test identified by test using 'test';
Database link created.
SQL>alter system set local_listener="(address=(protocol=tcp)(port=1521)(host=orclhost))" scope=memory;
System Altered
SQL> hist <==HIST[ory] を実行してリストを表示します:
1 create public database link test connect to test identified by test using 'test';
Database link created.
2 alter system set local_listener="(address=(protocol=tcp)(port=1521)(host=orclhost))" scope=memory;