-SQL*Plusのコマンドやテクニック

#contents

*設定ファイル [#h1006f6e]

setコマンドなどの設定はユーザホームディレクトリにlogin.sqlを作成しておくと毎回実行しなくてもよいので楽。

|自分だけ|~/login.sql|
|全体共通|$ORACLE_HOME/sqlplus/admin/glogin.sql|

**SQL*Plusを見やすくする設定 [#k8515a07]

 set linesize 1000
 set colsep ,
 set trimspool on
 set pagesize 0


*基本 [#f073eed1]

**SQLの実行時にバインドさせる [#c94b2b51]

-以下のように&をつけると実行時に値をプロンプトから入力できる

 select * from &TABLE_NAME;



**表示を見やすくする [#rd1b28da]

-そのままだと一行あたりの文字数が少なく、折り返しが発生して非常に見にくい。

 set linesize 1000
 set pagesize 10

**実行時間を表示 [#r62cd8a1]
 
 set timing on

-プロンプトに時間を表示(あまり役立たない)

 set time on



**SQLファイルの実行 [#f3e78509]

@ファイル名

**CSV出力 [#kdd22cd7]

-以下をexport.csvとして保存しておき、SQL*Plusから@ファイル名で呼び出す。例としてareaテーブルをarea.csvに出力するサンプル

 set echo off
 set linesize 1000
 set pagesize 0
 set trimspool on
 set feedback off
 set termout off
 set colsep ','
 spool area.csv
 select * from area;
 spool off

**コマンドラインTips [#j612ff1f]

|一行の表示桁を調整する|set line 400|
|カラムの表示桁調整|set num 50|
|文字列置換|c/置き換え前/置き換え後/|
|前回実行のSQL表示|LIST|

**SQLTips [#w7ca0eb8]

|時間以下を切り捨てて比較|TRUNC(DATETIME型フィールド,'DD') = TO_DATE('2010-03-29','YYYY-MM-DD')|

*実行計画の表示 [#o08a6e94]

-通常のSQL実行と実行計画を両方出すことができる。

|set autotrace on explain|実行計画と実行結果を表示する|
|set autotrace traceonly|実行計画と統計情報を表示し、結果は取得しない|
|set autotrace off|実行計画を表示しない|

**実行計画の意味 [#ba86a763]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS