1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Oracle] コマンドラインでSQLの履歴を操作

Last updated at Posted at 2020-07-16

SQL > の状態でコマンド履歴を確認・編集・実行する方法

SQL*Plus コマンドの

  1. define _editor=エディタ(一つ前の文を変更して実行)
  2. LISTコマンドを使う方法(1文のみ確認)
  3. HISTORYコマンド(トラック開始後すべての文確認&番号指定して実行)
    を使う方法があります。

通常


SQL>

この状態で↑↓ボタンでコマンド履歴をさぐろうとすると

SQL> ^[[B^[[A

のようになってしまう。

define _editor=エディタ(一つ前の文を変更して実行)

defineコマンドで編集時に使用するエディタを指定します。

viを使う場合
SQL> define _editor=vi

普通のテキストエディタを使う場合
SQL> define _editor=gedit

editコマンドで一つ前の文を編集

SQL> edit
省略も可能
SQL> ed

geditを指定した場合はアプリが開かれるので、そこで修正します。
image.png

/ コマンドで修正したコマンドを実行

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

ドキュメント

LIST

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;

ドキュメント

12.2 新機能: SQL*Plus コマンド履歴の記録 | Oracle Support Japan Blog

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?