SQL*Plusはメニューから起動しない
2007/01/31
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