SQL*Plus
データベースの起動/停止/回復などの管理作業には、SQL*Plusを使用する。SQL*Plusはこれらの管理コマンドを実行するほか、SQL文やPL/SQLブロックを実行することもできる。
SQL*Plusの使用方法
- 起動時にOracleサーバーに接続
sqlplus ユーザー名/パスワード[@ホスト文字列]
- Oracleサーバーに接続せずにSQL*Plusのみ起動
sqlplus /nolog
例1:SQL*Plusを起動し、scottユーザーで接続
sqlplus scott/tiger
例2:SQL*Plusのみ起動し、起動/停止可能なユーザーで接続
sqlplus /nolog SQL> connect / as sysdba
SQL*Plusコマンド
SQLPLUS コマンドは SQL コマンド、PL/SQL ブロックの入力、編集および実行などを行うためのコマンド(基本的にデータベースを直接操作しない、COPY が例外)
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 | データベースから切断 |
EDIT | ホストのエディタを使用した編集 |
EXECUTE | PL/SQL ブロックの実行 |
EXIT | SQL*Plus の終了 |
GET | ファイルの内容をSQLバッファに読み込む |
HELP | オンライン・コマンドヘルプ |
HOST | シェルでコマンドの実行 |
INPUT | 文字列の追加(単独の場合には複数行追加可能) |
LIST | SQL バッファ内を表示 |
PASSWORD | パスワードの変更 |
PAUSE | 処理の一時停止 |
バインド変数の内容を表示する | |
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 レベルのエラー発生時の例外処理 |
- PL/SQL から SQL*Plus コマンド実行する
PL/SQL を始めたばかりのときに良くある誤解であるが PL/SQL ブロック の内部から SQL*Plus コマンドは実行できない。
PL/SQL ブロックは「梱包されて」オラクルの本体であるインスタンスに PL/SQL のテキスト文が送信されて実行される。 PL/SQL ブロック内では Java、JOB、外部プロシージャを経由することでサーバーのリソースにアクセスし、システムコマンドを実行することできるがクライアント側のユーザープロセス(SQL*Plus) に直接命令を伝達することができない。
できるのはインスタンスの実行結果の内容を表示したりバインド変数を経由したデータのやり取りすることである。
See Also
SQL*Plus コマンド 一覧
http://www.shift-the-oracle.com/sqlplus/command/