Oracle SQL*Plus

SQL*PlusとはOracleでSQLを対話的に実行するプログラムです。この文書では、SQL*Plus の操作方法を解説します。

SQL*Plus の起動

OracleでSQLを対話的に実行するには、SQL*Plusを起動します。

sqlplus [ ログオン・オプション ] [ 開始オプション ]

SQL*Plusを起動と同時にデータベースへ接続する場合は、ログオン・オプションに接続に関するパラメータを指定します。ログオン・オプションは次の書式で指定します。

{ ユーザ名[/パスワード][@接続識別子] | / } [ AS SYSDBA | AS SYSOPER ]
| /NOLOG

接続識別子はローカル・ネーミング・パラメータ (tnsnames.ora)で設定されたネットサービス名です。

SQL*Plusの起動と同時にコマンドを実行する場合、開始オプションを指定します。

@{URL|ファイル名[.拡張子]} [ パラメータ ... ]

実行するコマンドを格納したファイル名を指定します。拡張子 .sql は省略できます。詳しくは「外部ファイルのSQL文を実行」をご覧ください。

ユーザー名とパスワードを指定すると、SQL*Plusの起動と同時にデータベースに接続します。ユーザー名とパスワードを省略してSQL*Plusを起動すると、ユーザー名とパスワードを聞いてきます。

$ sqlplus
ユーザ名を入力: 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 と入力します。

QUIT
EXIT
SQL> quit
$

データベースに接続する

データベースの起動や停止を行う前に、データベースに接続する必要があります。データベースへの接続には connect(省略形はconn)コマンドを使用します。

conn[ect] [ { ユーザ名/パスワード | / }
[ as { sysdba | sysoper } ] ]
SQL> connect / as sysdba
アイドル・インスタンスに接続しました。
SQL>

データベースと切断する

データベースと切断するには、disconnect(省略形はdisc)コマンドを使用します。また、SQL*Plusを終了すると、自動的にデータベースと切断します。

disc[onnect]
SQL> disconnect

データベースを起動する

データベースを起動するには、STARTUP コマンドを使用します。

STARTUP [ FORCE ] [ RESTRICT ]
[ PFILE=パラメータ・ファイルのパス ]
[ QUIET ]
[ MOUNT [dbname] | OPEN [open_options] [dbname] | NOMOUNT ]
FORCE
強制的にデータベースを起動します
RESTRICT
データベースを起動したユーザのみデータベースを使用できるよう制限します
MOUNT
データベースを起動してマウントしますが、オープンしません
NOMOUNT
データベースを起動しますが、マウントしません

Oracle Databaseのパッチセットをインストールした場合、データベースのアップグレードが必要な場合があります。その際はアップグレード・オプションを指定してデータベースを起動します。

STARTUP [ PFILE=パラメータ・ファイルのパス ]
{ 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 コマンドを使用します。

SHUTDOWN [ ABORT | IMMEDIATE | NORMAL | TRANSACTIONAL [LOCAL] ]

オプションを省略したときは、NORMALを指定したときと同じ動作になります。各オプションの違いを次に示します。

ABORT
ユーザーやプロセスがデータベースから切断するのを待たず、即座に停止します。処理中のトランザクションはロールバックされないため、データに不整合が生じることがあります。
IMMEDIATE
ユーザーやプロセスがデータベースから切断するのを待たず、即座に停止します。処理中のトランザクションはロールバックされます。
NORMAL
すべてのユーザーやプロセスがデータベースから切断するのを待ちます。
TRANSACTIONAL
ユーザーやプロセスがデータベースから切断するのを待ちませんが、すべてのトランザクションが終了するまで待ちます。
SQL> shutdown

直前のコマンドをもう1度実行する

/

前のコマンドをもう1度実行します。

SQL> /

外部ファイルのSQL文を実行

@ファイル名

SQL文を格納した外部ファイルを実行することができます。ファイル名に .sql という拡張子が付いている場合、拡張子は省略できます。

例えば、実行するSQL文を sqlcmd.sql というファイルに記述してある場合、次のようにして実行することができます。

SQL> @sqlcmd

出力結果のスプール

出力結果をファイルにも出力するには、spool(省略形はspo)コマンドを使用する。

spo[ol] [ ファイル名 | off ]

引数にファイル名を指定して実行すると、それ以降の出力がファイルに書き込まれます。なお、指定したファイル名に .lst という拡張子が自動的に付けられます。

SQL> spool sqllog

上記のコマンドを実行した後の出力は、画面に表示されると共に sqllog.lst というファイルにも書き込まれます。

引数に OFF を指定して実行すると、出力結果のファイルへの書き込みを終了します。

SQL> spool off

現在のスプール状態を確認するには、SHOW SPOOLコマンドを実行します。

sho[w] SPOO[L]
SQL> show spool
spool OFF
SQL>

OSコマンドを実行する

SQL*Plusを終了させずにOSのコマンドを実行するには、host(省略形はho)コマンドを使用します。

ho[st] OSコマンド

SQL*Plusコマンドのヘルプを表示する

SQL*Plusコマンドのヘルプを表示するには、HELPコマンドを使用します。

{ HELP | ? } [トピック]

STARTUPコマンドのヘルプを表示する例を次に示します。

SQL> help startup
SEO 仕事 掲示板 レンタルサーバー プロフ SEO