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>"