Sqlplus

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 処理の一時停止
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 レベルのエラー発生時の例外処理
  • 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/