Oracleメモ > SQL*Plus(Oracle) †
SQL*Plusとは †
SQL*Plusは、データベース(Oracle)へSQLの発行、問い合わせ用を行う為の対話ツール。(もちろんPL/SQLも実行できる)
SQL*Plus でしか利用できない便利なコマンドが用意されている。
※ 旧ライセンス形式では SQL*Plus の使用の用途が制限されている場合があるので要注意。
データベースへの接続 †
local 接続ネーミングメソッド
sqlplus username/password@net_service_name
簡易接続ネーミングメソッド
sqlplus username/password@[//]host[:port][/service_name]
SQL*PLUSのコマンド †
※参照 : http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19277-01/ch12.html [#n8afc52a]
| SQLPlus コマンド | コマンド 説明 |
| @ | ファイルの内容を実行(詳細は START 参照) |
| @@ |
| @? |
| n | カレント行を n にする |
| / | バッファ内のSQL、PL/SQLブロックを実行(SQL バッファ非表示) |
| ACCEPT | ACCEPT vData PROMPT ' vDataを入力する。' |
| APPEND | 行末にテキストを追加 |
| ARCHIVE LOG | アーカイブログ運用の設定と状態表示 |
| ATTRIBUTE | オブジェクト型列の表示書式を設定 |
| BREAK | |
| BTITLE | 下部に指定のタイトルの書式設定 |
| CHANGE | SQL バッファの文字を置換 |
| CLEAR | 画面、バッファ、書式、タイマーの設定などの初期化 |
| COLUMN | カラムの書式指定(書式モデル) |
| COMPUTE | |
| CONNECT | データベースへの接続 |
| COPY | 下位互換用 |
| DEFINE | ユーザー定義定数の設定と表示 |
| DEL | SQL バッファの一部を削除 |
| DESCRIBE | スキーマオブジェクトの仕様を表示 |
| DISCONNECT | データベースから切断 |
| ED[IT] | ホストのエディタを使用した編集 |
| EXECUTE | PL/SQL ブロックの実行 |
| EXIT | SQL*Plus の終了 |
| GET | ファイルの内容をSQLバッファに読み込む |
| HELP | オンライン・コマンドヘルプ |
| HOST | シェルでコマンドの実行 |
| INPUT | 文字列の追加(単独の場合には複数行追加可能) |
| LIST | SQL バッファ内を表示 |
| PASSWORD | パスワードの変更 |
| PAUSE | 処理の一時停止 |
| PRINT | バインド変数の内容を表示する |
| PROMPT | メッセージの表示 |
| RECOVER | データベースのリカバリー |
| REMARK | コメント行 |
| REPFOOTER | |
| REPHEADER | |
| QUIT | EXIT コマンドのエイリアス |
| RUN | バッファ内SQL、PL/SQLブロックを表示し実行 |
| SAVE | SQLバッファの内容をファイルに保存 |
| SET | システム変数を設定する |
| SHOW | メモリ、システム変数、初期化パラメータなどの表示 |
| SHUTDOWN | オラクルの停止 |
| SPOOL | 出力結果をファイルへ出力の開始と終了 |
| START | ファイルの内容を実行 |
| STARTUP | オラクルの起動 |
| STORE | |
| TIMING | タイマーの設定、表示と解除 |
| TTITLE | 上部に指定のタイトルの書式設定 |
| UNDEFINE | ユーザー定義定数の削除 |
| VARIABLE | バインド変数 の定義 |
| WHENEVER OSERROR | OS レベルのエラー発生時の例外処理 |
| WHENEVER SQLERROR | SQL レベルのエラー発生時の例外処理 |
※たくさんあるが、よく使うのは ED , SET ぐらい
SQL*Plus のシステム変数~ †
※システム変数は SQL*Plus コマンドの SET システム変数 値 という形式で設定する。
( SQL*PLUS起動時に自動的に環境設定する方法もある。 )
| コマンド | 説明 |
| SET APPINFO | スクリプトの進行状況などを設定 |
| SET ARRAYSIZE | DBMS_OUTPUT のバッファ、データベースから一度にフェッチする配列の大きさ |
| SET AUTOCOMMIT | オートコミットの有効/無効 |
| SET AUTOPRINT | バインド変数 の自動表示 |
| SET AUTORECOVERY | RECOVERY コマンドのアーカイブログファイル名を自動補完する/しない |
| SET AUTOTRACE | オートトレースの有効/無効、または、トレースモードの設定 |
| SET BLOCKTERMINATOR | PL/SQL ブロックの終了文字の設定 |
| SET CMDSEP | SQL*Plus コマンドの区切り文字 |
| SET COLSEP | カラムとカラムの間の区切り文字 |
| SET COMPATIBILITY | Oracle 8 以前向けの下位互換動作用 |
| SET CONCAT | 後続に文字連結するときの置換変数の終了文字の設定 |
| SET COPYCOMMIT | COPY コマンドのコミットポイント設定 |
| SET COPYTYPECHECK | COPY コマンドの型チェックの有効/無効 |
| SET DEFINE | 置換変数を有効/無効または接頭辞を設定 |
| SET DESCRIBE | DESCRIBE コマンド の表示方法の調整 |
| SET ECHO | スクリプトのSQL*Plusコマンドを表示をする/しない |
| SET EDITFILE | EDIT コマンド で使用する一時ファイル名の設定 |
| エディタプログラムの指定は _EDITOR 事前定義変数 |
| SET EMBEDDED | 異なるレポート(SQL)でも同一ページ含める/含めない |
| SET ESCAPE | エスケープ機能を有効/無効、または、別のエスケープ文字を設定 |
| SET FEEDBACK | 問い合わせの結果の件数を表示をする/しない、または、表示する最小件数の設定 |
| SET FLAGGER | SQL が SQL92 に準拠しているか調べる/調べないを設定 |
| SET FLUSH | 画面出力にバッファを使用する/しないの設定 |
| SET HEADING | 列ヘッダを表示する/しない |
| SET HEADSEP | 列ヘッダの区切り文字の設定 |
| SET INSTANCE | デフォルトのインスタンスの設定 |
| SET LINESIZE | 1行に表示する(文字数)バイト数の設定 |
| SET LOBOFFSET | CLOB、NCLOBの取り出し開始位置の設定 |
| SET LOGSOURCE | RECOVERY コマンドで使用するアーカイブログファイル位置の設定 |
| SET LONG | LONG、CLOB、NCLOB の表示幅 |
| SET LONGCHUNKSIZE | LONG、CLOB、NCLOBのチャンクサイズ |
| SET MARKUP | 出力をHTML 形式にエンコードをする/しないの設定(SQL*Plusの場合) |
| SET NEWPAGE | ページの開始位置から列ヘッダーまでの余白行数の設定 |
| SET NULL | NULL データの代替文字列設定 |
| SET NUMFORMAT | 数値のデフォルト書式の設定(書式モデル) |
| SET NUMWIDTH | 数値のデフォルト表示幅 |
| SET PAGESIZE | 1ページの行数 |
| SET PAUSE | 1ページ毎に一時停止をする/しない |
| SET RECSEP | レコードセパレータを常に出力する/しない、または、折り返しが発生時のみ出力する |
| SET RECSEPCHAR | RECSEP が発生したときに表示される文字の設定 |
| SET SERVEROUTPUT | 標準出力に表示する/しない、または、バッファの上限サイズ |
| SET SHIFTINOUT | シフト文字を表示する/しない(特殊なコンソールのみ) |
| SET SHOWMODE | システム変数の変更前値の通知を表示する/しない |
| SET SQLBLANKLINES | SQL コマンド、PL/SQL ブロックに空白行を許可する/しない |
| SET SQLCASE | すべての入力文字を大文字、または、小文字に変換する/しない |
| SET SQLCONTINUE | 複数行の SQL*Plusコマンド入力時のプロンプトの設定 |
| SET SQLNUMBER | 複数行の SQL コマンド、PL/SQL ブロック入力時に表示される行番号を表示する/しない |
| SET SQLPLUSCOMPATIBILITY | 動作保証できる SQL*Plus のバージョンの設定 |
| SET SQLPREFIX | SQL*Plus コマンドの接頭辞の設定 |
| SET SQLPROMPT | SQL*Plus のコマンドプロンプトに表示される文字列の設定 |
| SET SQLTERMINATOR | SQL コマンド、PL/SQL ブロックの終了文字の設定 |
| SET SUFFIX | スクリプトファイルのデフォルト拡張子の設定 |
| SET TAB | タブ文字の使用をする/しない |
| SET TERMOUT | @、@@、START のスクリプトによるアウトプットを表示する/しない |
| SET TIME | SQL プロンプトに時刻表示する/しない |
| SET TIMING | タイミング統計(タイマー)を表示する/しない |
| SET TRIMOUT | 各行の出力の終わりから行末までの空白を出力する/しない(スプールには無関係) |
| SET TRIMSPOOL | スプールにおける TRIMOUT システム変数(画面出力には無関係) |
| SET UNDERLINE | 列ヘッダの下の表示される -----… 文字のあり/なし/文字の設定 |
| SET VERIFY | 置換変数に設定する前後の状態を表示する/しない |
| SET WRAP | 表示幅に収まらない部分を折り返す/切り捨てる |
SQL*PLUS起動時に良く使う設定を自動的に読み込む †
(1)SQL*PLUSへのショートカットを作成する
(2)ショートカットの作業フォルダを自分のMyDocument等に変更する
(3)(2)で設定した作業フォルダに、下記のようなSQL*Plusのコマンドが書かれたファイルを login.sql という名前で作成する
SET LINESIZE 200
SET SERVEROUTPUT ON SIZE 1000000
SET SQLPROMPT "&_USER.@&_CONNECT_IDENTIFIER>"