sqlplusのオプションと引数

Oracle SQL*Plusにはさまざまなオプションがある。起動時にデータベースに接続するかどうかや、サーバから起動するのかリモートクライアントから接続するのかなどによって、オプションの指定方法が異なる。

構文

以下に示すいずれかの形式でSQL*Plusを起動する。

sqlplus [options]
sqlplus [options] user
sqlplus [options] user/password
sqlplus [options] user@sid
sqlplus [options] user/password@sid
sqlplus [options] user/password@host
sqlplus [options] user/password@host:port
sqlplus [options] user/password@host/service_name
sqlplus [options] user/password@host:port/service_name
sqlplus [options] user/password@net_service_name
sqlplus [options] / AS SYSDBA
sqlplus [options] / AS SYSOPER
sqlplus [options] / AS SYSBACKUP
sqlplus [options] / AS SYSDG
sqlplus [options] /NOLOG

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

$ sqlplus
ユーザ名を入力: scott
パスワードを入力: tiger
接続:
SQL>

SQL*Plusを起動すると、SQL> というプロンプトが表示されます。ここにコマンドを入力します。なお、コマンドは大文字と小文字を区別しません。

オプション

以下に示すオプションをsqlplusコマンドに指定することができる。

-H[ELP]
SQL*Plusの使用方法を表示して、コマンドを終了する。他のオプションと組み合わせることはできない。
$ sqlplus -HELP
$ sqlplus -HEL
$ sqlplus -HE
$ sqlplus -H
-L[OGON]
SQL*Plus起動時に一度だけ接続を試みる。接続に失敗した場合は、再度ユーザー名の入力を求めるプロンプトを表示せずに、SQL*Plusを終了する。シェルスクリプトで無人実行する場合等に利用する。
$ sqlplus -LOGON scott/tiger@orcl
$ sqlplus -LOGO scott/tiger@orcl
$ sqlplus -LOG scott/tiger@orcl
$ sqlplus -LO scott/tiger@orcl
$ sqlplus -L scott/tiger@orcl
-S[ILENT]
SQL*Plusをサイレント・モードで実行する。サイレント・モードでは、SQL*Plus起動時バナーやプロンプトが表示されなくなる。
$ sqlplus -SILENT /NOLOG
$ sqlplus -SILEN /NOLOG
$ sqlplus -SILE /NOLOG
$ sqlplus -SIL /NOLOG
$ sqlplus -SI /NOLOG
$ sqlplus -S /NOLOG
-V[ERSION]
SQL*Plusのバージョンを表示して、コマンドを終了する。他のオプションと組み合わせることはできない。
$ sqlplus -VERSION
$ sqlplus -VERSIO
$ sqlplus -VERSI
$ sqlplus -VERS
$ sqlplus -VER
$ sqlplus -VE
$ sqlplus -V

引数

/NOLOG
データベースに接続せずにSQL*Plusを起動する。
$ sqlplus /NOLOG
user
ユーザ名を指定する。ユーザ名の指定を省略した場合、プロンプトが表示されて、ユーザ名の入力が促される。
$ sqlplus scott
password
パスワードを指定する。パスワードの指定を省略した場合、プロンプトが表示されて、パスワードの入力が促される。
$ sqlplus scott/tiger
sid
データベースインスタンスを指定する。データベースインスタンスの指定を省略した場合、環境変数ORACLE_SIDに設定したデータベースインスタンスに接続する。環境変数TWO_TASKとORACLE_SIDが両方設定されている場合、環境変数TWO_TASKの方が優先的に使用される。環境変数TWO_TASKは接続文字列を指定する環境変数であり、設定内容によってはリモート接続となる。
$ sqlplus scott/tiger@orcl
$ sqlplus scott@orcl
host
クライアントからリモート接続するデータベースサーバのホスト名を指定する。
$ sqlplus scott/tiger@myhost
port
クライアントからリモート接続するデータベースサーバのポート番号を指定する。省略した場合はデフォルトのポート番号で接続する。
$ sqlplus scott/tiger@myhost:1521
service_name
アクセスするオラクルデータベースサービスを指定する。オラクル初期化パラメータファイルのSERVICE_NAMESパラメータの値を設定する。省略した場合は環境変数ORACLE_SIDに設定されているインスタンスに接続する。
$ sqlplus system/oracle@myhost:1521/XE
$ sqlplus system/oracle@myhost/XE
net_service_name
クライアントからリモート接続するデータベースサーバのホスト名やポート番号、サービス名などをネットサービスとしてローカルネーミングパラメータファイル(tnsnames.ora)に定義しておき、その接続識別名(ネットサービス名)を指定して接続する。
$ sqlplus system/oracle@orcl
AS SYSDBA
データベース全体を管理する権限でデータベースに接続する。
$ sqlplus / as sysdba

SYSユーザーでデータベースに接続する場合には、必ずAS SYSDBAを指定する必要がある。

$ sqlplus sys/password as sysdba
AS SYSOPER
データベースの起動・停止を行う権限でデータベースに接続する。
$ sqlplus / as sysoper
AS SYSBACKUP
バックアップ・リカバリ操作を実行することができる権限でデータベースに接続する。
$ sqlplus / as sysbackup
AS SYSDG
データガードの操作を実行することができる権限でデータベースに接続する。
$ sqlplus / as sysdg

開始

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

実行するコマンドを格納したファイル名を引数に指定する。拡張子 .sql は省略できる。詳しくは「外部ファイルのSQL文を実行」を参照されたし。

@url
@file
@file parameters
@file.ext
@file.ext parameters
file
実行するコマンドを格納したファイルのパスを指定する。拡張子を省略した場合は、拡張子 .sql が省略されたものと看做す。
$ sqlplus system/oracle@orcl @createtable
ext
実行するコマンドを格納したファイルの拡張子を指定する。
$ sqlplus system/oracle@orcl @createtable.sql
parameters
実行するコマンドを格納したファイルに渡すパラメータを指定する。
$ sqlplus system/oracle@orcl @createtable.sql emp dept