Home実験室 − No.0013


        No.0013(DBA)
        SQL*Plusを起動するバッチファイルを用意する

■環境
  □OS: Windows XP Professional SP3
  □Oracle: Oracle Database 11g R2 (Standard)
  □OSログインユーザ: ORA_DBAグループ

■経緯
  SQLを実行するたびにコマンドプロンプトを起動し、SQL*Plusを立ち上げ、connectし....とするのがかなり面倒くさい。そこで、この一連の操作をバッチファイルで行えるようにしたい。

■実験
  1. まず、SQL*Plusを起動するバッチファイルを作成。以下を「sqlect.bat」として保存する

◇ sqlect.bat ◇

@echo on sqlplus /nolog @sqlect.txt pause



  2. 次に、SQL*Plusを起動してからの操作を記述するファイルを作成する。以下を「sqlect.txt」として保存する。
     linesize ・・・ 一行の長さ(この値のbyte数で改行)
     trimspool ・・・ 一連の流れをファイルに出力(spoolという)するとき用。
                これをしないとlinesize一杯までスペースで埋め尽くされてしまう
                (trimspaceと間違え「できない、できない」となりやすいので注意)
     pagesize ・・・ select結果を表示するとき、ヘッダ(列名見出し)を何行おきに出現させるかを決める。
                50001以上に設定できない。
     colsep ・・・ select結果を表示するとき、カラム間の区切り文字を定義する。
                区切り文字をカンマにしておけばCSVのように取り出せてGood。
     timing ・・・ SQLを発行するたびに、処理にかかった時間を表示してくれる。ウザい場合はなくてよい。
     sqlprompt ・・・ プロンプトに表示させる文字をここで指定できる。「>SQL 」はデフォルト。
     host cls ・・・ クリアスクリーンを実行。これまでの起動している間のごちゃごちゃしたメッセージを消して、
                フレッシュな気持ちでSQLを作成できる。「cls」はdosコマンドであり、一旦SQL*Plusを
                立ち上げたら、コマンドプロンプト上であっても「HOST」とつけないといけない。

◇ sqlect.txt ◇

conn /as sysdba set linesize 3000 set trimspool on set pagesize 50000 set colsep ',' set long 200000 set timing on set sqlprompt 'SQL> ' host cls



  3. 上記2ファイルを同じフォルダ所に配置する
  

  4. 「sqlect.bat」をダブルクリックすると、SQL*Plusが起動し、「sqlect.txt」をすべて実行した状態になる
  

  5. ちなみに、せったかくSQL*Plusで行長さなどを指定しても、コマンドプロンプトの行長さが追いついていないと結局見難くなってしまうので、コマンドプロンプトのプロバティも変更しておく。  まず、「sqlect.bat」を実行している状態で、コマンドプロンプトのアイコンを右クリックし、ポップアップメニューから[プロパティ]をクリック
  

  6. [オプション]タブで、[簡易挿入モードに]チェック。選択範囲を右クリック一発でコピーできるようになる。
  

  7. [フォント]タブで、少し小さめのフォントを選択する。お好みで。
  

  8. [レイアウト]タブで、バッファサイズをSQL*Plusで指定したlinesizeをカバーできるように設定。あとはお好みで。
  

  9. [画面の色]タブで、文字色を指定。デフォルトの文字色は灰色っぽいので真っ白に変えてビビットに。お好みで。
  

  10. [OK]をクリックと下記画面が表示されるので、必ず「このウインドウを...」を選択して[OK]をクリック。
  



    【PR】    Oracle実験室監修  『Oracleアーキテクチャ鳥瞰図』 PDF  (Oracleのアーキテクチャを一目で俯瞰できるイラスト)  


Home実験室 − No.0013

© 2011-2011   Amateur Laboratory of ORACLE
inserted by FC2 system