接続と切断 🚪
データベースへの接続方法とセッションの終了方法について説明します。
目的 | コマンド形式 | 説明 |
---|---|---|
ユーザー名/パスワードで接続 | sqlplus username/password@connect_identifier |
指定したユーザー名、パスワード、接続識別子(TNS名など)を使用してデータベースに接続します。 |
対話形式で接続 | sqlplus |
SQL*Plusを起動し、ユーザー名、パスワード、接続識別子を順に尋ねられます。 |
OS認証で接続 (ローカル) | sqlplus / as sysdba |
OSユーザーが特定のDBAグループに属している場合、パスワードなしでSYSDBA権限で接続します(設定による)。/ はOS認証を示します。 |
OS認証で接続 (一般ユーザー) | sqlplus / |
OSユーザー名に対応するOracleユーザーとして接続します (OPS$ユーザーなど、設定が必要)。 |
接続情報を隠して接続 (サイレントモード) | sqlplus -S username/password@connect_identifier |
-S オプションを使用すると、SQL*Plusのバージョン情報やプロンプトを表示せずに接続します。スクリプト実行時に便利です。 |
接続ユーザー変更 | CONNECT username/password@connect_identifier または CONN username/password@connect_identifier |
現在のセッション内で別のユーザーまたは別のデータベースに再接続します。 |
現在の接続ユーザー表示 | SHOW USER |
現在接続しているユーザー名を表示します。 |
SQL*Plus 終了 (コミット) | EXIT [COMMIT] |
SQL*Plusセッションを終了します。デフォルトではコミットが実行されます。終了コードを返すことも可能です (例: EXIT 1 )。 |
SQL*Plus 終了 (ロールバック) | EXIT ROLLBACK |
変更をロールバックしてSQL*Plusセッションを終了します。 |
SQL*Plus 終了 (エイリアス) | QUIT |
EXIT と同じ動作をします。デフォルトでコミットされます。 |
接続解除 (セッション維持) | DISCONNECT |
データベースから切断しますが、SQL*Plus自体は終了しません。再度 CONNECT コマンドで接続できます。 |
SQLとコマンドの実行 ⚙️
SQL文、PL/SQLブロック、およびSQL*Plusコマンドを実行する方法です。
目的 | コマンド/記号 | 説明 |
---|---|---|
SQL文の実行 | SELECT * FROM employees; |
SQL文を入力し、セミコロン(; )で終了してEnterキーを押すと実行されます。 |
SQLバッファ内のSQL実行 | / |
SQLバッファ(最後に実行または編集したSQL文)の内容を再実行します。 |
SQLバッファ内のSQL表示と実行 | RUN |
SQLバッファの内容を表示してから実行します。LIST コマンドと/ コマンドの組み合わせに相当します。 |
スクリプトファイルの実行 | @ファイルパス/ファイル名.sql または START ファイルパス/ファイル名.sql |
指定されたSQLスクリプトファイルの内容を実行します。パスが指定されない場合はカレントディレクトリまたはSQLPATH環境変数で指定されたディレクトリを探します。 |
PL/SQLブロックの実行 |
|
PL/SQLブロックを入力し、最後にスラッシュ(/ )を入力してEnterキーを押すと実行されます。SET SERVEROUTPUT ON が事前に必要になることが多いです。 |
OSコマンドの実行 | HOST os_command または !os_command (Unix/Linux)$os_command (VMS) |
SQL*Plusセッション内からオペレーティングシステムのコマンドを実行します。例: HOST dir (Windows), !ls -l (Linux) |
出力フォーマットの調整 📊
クエリ結果や情報の表示形式をカスタマイズするための SET
コマンド群です。
目的 | コマンド | 説明 |
---|---|---|
行の折り返し幅設定 | SET LINESIZE 120 |
1行に表示される文字数を設定します。これを超えると次の行に折り返されます。デフォルトは通常80です。 |
1ページの行数設定 | SET PAGESIZE 50 |
ヘッダーが繰り返し表示されるまでの行数を設定します。0 を設定するとヘッダーは最初の1回だけ表示されます。 |
列ヘッダー表示/非表示 | SET HEADING ON | OFF |
クエリ結果の列見出しを表示するかどうかを制御します。HEADSEP で区切り文字も設定できます。 |
フィードバック表示/非表示 | SET FEEDBACK ON | OFF | n |
SQL文によって処理されたレコード数を表示するかどうかを制御します。n を指定すると、n 件以上のレコードが処理された場合にのみ表示されます。デフォルトは6件です。 |
実行コマンド表示/非表示 | SET ECHO ON | OFF |
スクリプトファイル(@ または START で実行)内のコマンドを表示するかどうかを制御します。デバッグ時に便利です。 |
置換変数表示/非表示 | SET VERIFY ON | OFF |
置換変数 (& や && ) が置換される前後の値を表示するかどうかを制御します。 |
NULL値の表示文字列 | SET NULL ' (NULL) ' |
クエリ結果でNULL値がどのように表示されるかを指定します。 |
数値の表示形式 | SET NUMFORMAT 999,999.99 |
数値データのデフォルト表示形式を設定します。COLUMN コマンドで列ごとに上書きできます。 |
列の表示フォーマット設定 | COLUMN column_name FORMAT A20 HEADING 'New Header' |
特定の列の表示形式(幅、数値フォーマット、折り返しなど)やヘッダーテキストを設定します。例: FORMAT A20 (文字列20文字), FORMAT 99,990.00 (数値), WORD_WRAPPED (単語単位で折り返し)。 |
列フォーマット解除 | COLUMN column_name CLEAR |
特定の列に設定されたフォーマットを解除します。 |
全列フォーマット解除 | CLEAR COLUMNS |
すべての列に設定されたフォーマットを解除します。 |
画面出力の有効/無効 | SET TERMOUT ON | OFF |
SQL*Plusからの画面出力を制御します。OFF にすると、SPOOL でファイルに書き込んでいる間、画面には何も表示されなくなります。 |
💡 特定の設定値を確認するには SHOW parameter
(例: SHOW LINESIZE
) を使用します。すべての設定を表示するには SHOW ALL
を使用します。
SQLバッファと編集 📝
直前に実行または入力されたSQL文(SQLバッファ)を操作するためのコマンドです。
目的 | コマンド | 説明 |
---|---|---|
SQLバッファの内容表示 | LIST または L |
SQLバッファ内の現在のSQL文を行番号付きで表示します。 |
SQLバッファの特定行表示 | LIST n または L n |
SQLバッファの n 行目をカレント行とし、表示します。 |
SQLバッファの行範囲表示 | LIST m n または L m n |
SQLバッファの m 行目から n 行目までを表示します。 |
カレント行の末尾に追記 | APPEND text または A text |
SQLバッファのカレント行の末尾に指定した text を追加します。 |
カレント行の文字列置換 | CHANGE /old/new/ または C /old/new/ |
SQLバッファのカレント行で最初に見つかった old 文字列を new 文字列に置換します。区切り文字は / 以外も使用可能です。 |
カレント行の後に新しい行を挿入 | INPUT または I |
SQLバッファのカレント行の後に新しい行を挿入します。続けて複数行入力できます。空行を入力すると入力モードを終了します。 |
カレント行の後にテキストを挿入 | INPUT text または I text |
SQLバッファのカレント行の後に、指定した text を含む新しい行を挿入します。 |
カレント行を削除 | DEL |
SQLバッファのカレント行を削除します。 |
行範囲を削除 | DEL m n |
SQLバッファの m 行目から n 行目までを削除します。 |
外部エディタでバッファ編集 | EDIT または ED |
_EDITOR 環境変数(またはDEFINEコマンド)で指定された外部テキストエディタを起動し、SQLバッファの内容を編集します。編集後、エディタを終了すると変更がバッファに反映されます。 |
SQLバッファのクリア | CLEAR BUFFER |
SQLバッファの内容を消去します。 |
スクリプトと変数 📜
スクリプト内で使用する変数や対話的な入力を扱うためのコマンドです。
目的 | コマンド | 説明 |
---|---|---|
ユーザー変数の定義 | DEFINE variable_name = value |
ユーザー変数(置換変数)を定義します。値は文字列として扱われます。DEFINE のみで定義済み変数一覧を表示します。 |
ユーザー変数の定義解除 | UNDEFINE variable_name |
指定したユーザー変数の定義を解除します。 |
ユーザーからの入力受付 | ACCEPT variable_name [PROMPT 'message'] [HIDE] |
ユーザーに入力を促し、入力された値を指定した変数に格納します。PROMPT でメッセージ表示、HIDE で入力内容を隠します(パスワード入力用)。 |
置換変数 (毎回置換) | &variable_name |
SQL文やコマンド内で使用すると、variable_name の値に置換されます。変数が未定義の場合、入力を求められます。数値や文字列リテラル内で使用する場合は注意が必要です。文字列リテラルでは '&variable_name' のように引用符で囲みます。 |
置換変数 (初回のみ置換) | &&variable_name |
& と似ていますが、変数が未定義の場合に最初に入力を求められた後、そのセッション中は同じ変数に対して再度入力を求められません(DEFINEされた状態になります)。 |
画面へのメッセージ表示 | PROMPT message text |
指定したメッセージを画面に出力します。スクリプトの進行状況を示すのに便利です。 |
スクリプトの一時停止 | PAUSE [message text] |
スクリプトの実行を一時停止し、指定したメッセージを表示します。ユーザーがEnterキーを押すと再開します。 |
出力結果のファイル保存開始 | SPOOL file_path/filename.txt |
これ以降の画面出力を指定したファイルに書き込みます。 |
出力結果のファイル保存終了 | SPOOL OFF |
ファイルへの書き込みを終了します。 |
スクリプト引数の利用 | @script.sql arg1 arg2 ... スクリプト内: &1 , &2 , … |
スクリプト実行時に引数を渡し、スクリプト内で &1 , &2 のように参照できます。 |
環境設定と情報表示 ⚙️📊
SQL*Plusの動作環境を調整したり、情報を表示したりするコマンドです。
目的 | コマンド | 説明 |
---|---|---|
SQL実行時間表示 | SET TIMING ON | OFF |
各SQL文の実行時間を表示するかどうかを制御します。パフォーマンス測定に役立ちます。 |
DBMS_OUTPUT.PUT_LINE の表示 | SET SERVEROUTPUT ON | OFF [SIZE n] [FORMAT WRAPPED | WORD_WRAPPED | TRUNCATED] |
PL/SQLの DBMS_OUTPUT.PUT_LINE による出力を画面に表示します。SIZE でバッファサイズ(デフォルト20000、最大1,000,000)、FORMAT で折り返し方法を指定できます。 |
実行計画と統計情報表示 | SET AUTOTRACE ON | OFF | TRACEONLY [EXPLAIN] [STATISTICS] |
SQL文の実行後に実行計画や統計情報を自動的に表示します。TRACEONLY はSQL結果を表示せず計画/統計のみ表示。EXPLAIN は計画のみ、STATISTICS は統計のみ。実行には特定の権限が必要です。 |
SQLプロンプトの変更 | SET SQLPROMPT 'MyPrompt> ' |
SQL*Plusのコマンドプロンプト文字列を変更します。_USER や _CONNECT_IDENTIFIER といった変数を埋め込めます (例: SET SQLPROMPT '_USER@_CONNECT_IDENTIFIER> ' )。 |
オブジェクト構造の表示 | DESCRIBE object_name または DESC object_name |
テーブルやビューの列定義、プロシージャ/ファンクションの引数などのオブジェクト構造を表示します。 |
SQL*Plus環境設定の表示 | SHOW parameter 例: SHOW ALL , SHOW LINESIZE , SHOW USER |
指定したSQL*Plusの環境設定パラメータの現在の値を表示します。ALL ですべての設定を表示します。 |
エラー発生時の動作設定 (SQL) | WHENEVER SQLERROR EXIT [SQL.SQLCODE | n] [COMMIT | ROLLBACK] | CONTINUE [COMMIT | ROLLBACK | NONE] |
SQLエラーが発生した場合の動作を設定します。EXIT で SQL*Plus を終了(オプションで終了コード指定、コミット/ロールバック指定可)、CONTINUE で処理を続行(オプションでコミット/ロールバック指定可)。 |
エラー発生時の動作設定 (OS) | WHENEVER OSERROR EXIT [n] [COMMIT | ROLLBACK] | CONTINUE [COMMIT | ROLLBACK | NONE] |
OSエラー(ファイルアクセスエラーなど)が発生した場合の動作を設定します。WHENEVER SQLERROR と同様のオプションが指定可能です。 |
SQL*Plus コマンドのヘルプ表示 | HELP [command | topic] |
SQL*Plusコマンドやトピックに関するヘルプ情報を表示します(システムにヘルプがインストールされている場合)。例: HELP SET , HELP SELECT |
コメント