SQL*PlusとはOracleでSQLを対話的に実行するプログラムです。この文書では、SQL*Plus の操作方法を解説します。
SQL*Plus の起動
OracleでSQLを対話的に実行するには、SQL*Plusを起動します。
SQL*Plusを起動と同時にデータベースへ接続する場合は、ログオン・オプションに接続に関するパラメータを指定します。ログオン・オプションは次の書式で指定します。
| /NOLOG
接続識別子はローカル・ネーミング・パラメータ (tnsnames.ora)で設定されたネットサービス名です。
SQL*Plusの起動と同時にコマンドを実行する場合、開始オプションを指定します。
実行するコマンドを格納したファイル名を指定します。拡張子 .sql は省略できます。詳しくは「外部ファイルのSQL文を実行」をご覧ください。
ユーザー名とパスワードを指定すると、SQL*Plusの起動と同時にデータベースに接続します。ユーザー名とパスワードを省略してSQL*Plusを起動すると、ユーザー名とパスワードを聞いてきます。
ユーザ名を入力: scott
パスワードを入力: tiger
接続:
SQL>
SQL*Plusを起動すると、SQL> というプロンプトが表示されます。ここにコマンドを入力します。なお、コマンドは大文字と小文字を区別しません。
SQLコマンドは複数行に渡って記述することができます。そのため、Enterキーを押しても改行されるだけで、SQLコマンドの入力は完了しません。SQLコマンドの入力を完了するには、末尾にセミコロン記号 (;) を付けるか、最後の行にスラッシュ記号 (/) だけを入力します。
SQL> SELECT * 2 FROM 従業員表; 番号 氏名 ---- ---------- 0001 梅田えりか 0002 矢島舞美 2行が選択されました。 SQL>
SQL> select * 2 from 従業員表 3 / 番号 氏名 ---- ---------- 0001 梅田えりか 0002 矢島舞美 2行が選択されました。 SQL>
SQL*Plus の終了
SQL*Plusを終了するには quit または exit と入力します。
$
データベースに接続する
データベースの起動や停止を行う前に、データベースに接続する必要があります。データベースへの接続には connect(省略形はconn)コマンドを使用します。
[ as { sysdba | sysoper } ] ]
アイドル・インスタンスに接続しました。
SQL>
データベースと切断する
データベースと切断するには、disconnect(省略形はdisc)コマンドを使用します。また、SQL*Plusを終了すると、自動的にデータベースと切断します。
データベースを起動する
データベースを起動するには、STARTUP コマンドを使用します。
[ PFILE=パラメータ・ファイルのパス ]
[ QUIET ]
[ MOUNT [dbname] | OPEN [open_options] [dbname] | NOMOUNT ]
- FORCE
- 強制的にデータベースを起動します
- RESTRICT
- データベースを起動したユーザのみデータベースを使用できるよう制限します
- MOUNT
- データベースを起動してマウントしますが、オープンしません
- NOMOUNT
- データベースを起動しますが、マウントしません
Oracle Databaseのパッチセットをインストールした場合、データベースのアップグレードが必要な場合があります。その際はアップグレード・オプションを指定してデータベースを起動します。
{ UPGRADE | DOWNGRADE }
[ QUIET ]
SQL> startup ORACLEインスタンスが起動しました。 Total System Global Area 5133828096 bytes Fixed Size 2036016 bytes Variable Size 973082320 bytes Database Buffers 413972352 bytes Redo Buffers 13737408 bytes データベースがマウントされました。 データベースがオープンされました。 SQL>
データベースを停止する
データベースを停止するには、SHUTDOWN コマンドを使用します。
オプションを省略したときは、NORMALを指定したときと同じ動作になります。各オプションの違いを次に示します。
- ABORT
- ユーザーやプロセスがデータベースから切断するのを待たず、即座に停止します。処理中のトランザクションはロールバックされないため、データに不整合が生じることがあります。
- IMMEDIATE
- ユーザーやプロセスがデータベースから切断するのを待たず、即座に停止します。処理中のトランザクションはロールバックされます。
- NORMAL
- すべてのユーザーやプロセスがデータベースから切断するのを待ちます。
- TRANSACTIONAL
- ユーザーやプロセスがデータベースから切断するのを待ちませんが、すべてのトランザクションが終了するまで待ちます。
直前のコマンドをもう1度実行する
前のコマンドをもう1度実行します。
外部ファイルのSQL文を実行
SQL文を格納した外部ファイルを実行することができます。ファイル名に .sql という拡張子が付いている場合、拡張子は省略できます。
例えば、実行するSQL文を sqlcmd.sql というファイルに記述してある場合、次のようにして実行することができます。
出力結果のスプール
出力結果をファイルにも出力するには、spool(省略形はspo)コマンドを使用する。
引数にファイル名を指定して実行すると、それ以降の出力がファイルに書き込まれます。なお、指定したファイル名に .lst という拡張子が自動的に付けられます。
上記のコマンドを実行した後の出力は、画面に表示されると共に sqllog.lst というファイルにも書き込まれます。
引数に OFF を指定して実行すると、出力結果のファイルへの書き込みを終了します。
現在のスプール状態を確認するには、SHOW SPOOLコマンドを実行します。
spool OFF
SQL>
OSコマンドを実行する
SQL*Plusを終了させずにOSのコマンドを実行するには、host(省略形はho)コマンドを使用します。
SQL*Plusコマンドのヘルプを表示する
SQL*Plusコマンドのヘルプを表示するには、HELPコマンドを使用します。
STARTUPコマンドのヘルプを表示する例を次に示します。