SQL*Plusはメニューから起動しない

WindowsクライアントでRDBがoracleの場合の開発についてです。

RDBがoracleの開発は、数年前程多くないけど、時々あります。SQLが得意ではないので、SQL文を投げて結果を見ながら、try&errorでプログラムが実行するSQL文を作っていきます。SQL文を実行するため、oracleなら標準のSQL*Plusを使います。

oracleをインストールしたら、メニューからSQL*Plusを起動できるようになるけど、そのインターフェースが嫌いです。ログオンダイアログが表示されて、ユーザ名、パスワード、ホスト文字列を入力して、OKボタンを押すやつです。サーバに接続した後も、前に実行したSQL文の履歴をたどることも、入力したSQL文のtypoを1文字直すのにも、苦労する。(例によって、やり方を知らないだけかもしれませんが;)


気に入らない理由を一言で言えば、「unixのshellのように使えない」ということです。


ちょっと良くする方法は、コマンドプロンプトで、SQL*Plusを実行する、です。これで、↑キーを押して実行した履歴を呼出すことができます。←→キーで戻ってtypoの編集もできます。欠点はコピーペーストがWindows標準のやつではできなくなるってことでしょうか。更に、cygwinから、SQL*Plusを実行するようにすれば、<C-P><C-N><C-F><C-B><C-A><C-E>などのキーバインドを使えてもっと幸せです。

C:\>sqlplus system/manager@db
SQL*Plus: Release 10.2.0.1.0 - Production on 水 1月 31 19:24:03 2007
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
に接続されました。
SQL> select count(*) from user_tables;
COUNT(*)
----------
141
SQL> select count(*) from user_tables where table_name like 'A%'; – 履歴を利用してコマンド編集できる。
COUNT(*)
----------
5
SQL> quit
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining optionsとの接続が切断されました。
C:\>

あと、SQLの結果の表示方法を制御するコマンドがありますが、それらのコマンドを自動的に実行させることも可能のようです。カレントディレクトリの login.sql というファイルに、コマンドを書いておくと、起動時に実行してくれました。

  • login.sql
set linesize 1000
set pagesize 40

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.