Oracle SQL*Plus のラインエディット機能
以前の日記で SQL*Plusのラインエディット機能のことを少し書きましたので便利な利用例を整理してみます。
- 例えばわざと誤ったSQLを実行
SQL> select systemdate 2 from duel; from duel * ERROR at line 2: ORA-00942: table or view does not exist
『duel』なんて言うテーブルはないと怒られています。
- SQL文のリストを表示
SQL> l 1 select systemdate 2* from duel
本当は『list』コマンドだけど、『l』で省略可能です。
- 誤ったテーブル名を正しく置換し、リストを表示
SQL> c/duel/dual/ 2* from dual SQL> l 1 select systemdate 2* from dual
正しい『dual』テーブルに変更されました。
- 再実行してみますが、まだ誤りが残っているのでエラーが発生
SQL> run 1 select systemdate 2* from dual select systemdate * ERROR at line 1: ORA-00904: "SYSTEMDATE": invalid identifier
『systemdate』なんて言うカラムはないと怒られています。
- リストを確認すると2行目が編集対象なので1行目に変更
SQL> l 1 select systemdate 2* from dual SQL> 1 1* select systemdate
行番号のみ入力するとその行が編集対象に替わり、行番号の後に『*』が移動します。
- 誤ったカラム名を正しく置換し、リストを表示後、再実行
SQL> c/systemdate/sysdate/ 1* select sysdate SQL> l 1 select sysdate 2* from dual SQL> run 1 select sysdate 2* from dual SYSDATE
-
-
-
-
-
-
- -
-
-
-
-
-
正しく実行されました。
ちなみに、『run』コマンドは『r』で省略可能です。
SQL> r 1 select sysdate 2* from dual SYSDATE
-
-
-
-
-
-
- -
-
-
-
-
-
こんな感じでちょっとしたSQL文の編集には凄い便利だったりします〜。(^o^)/