SQL*Plus コマンドライン・オプション
SQL*Plus の起動オプションは大きくOption、Logon、Start の3つのブロックにわけられる。
SQL*Plus の3つのオプション
sqlplus [Option] [Logon] [Start]
Option 構文
SQL*Plus の基本動作のオプション
-H[ELP] | -V[ERSION] | [-C version] [-F] [-L]
[[-M[ARKUP] markup_option] [-R[ESTRICT] {1|2|3}] [-S[ILENT]]]
-H (ヘルプ表示)
-V (バージョン表示)
-C SQL*Plus 互換性の設定(動作のバージョンを設定)
-F (Oracle 11g R2 : Failover) RAC の FAN イベントを受信する
-F (Oracle 12c ~ : Fast) システム変数の一部が速度重視に最適化
-L 一度だけログオンを試みる。(接続失敗時に即エラー終了)
-M HTMLを制御するパラメータ群
-NOLOGINTIME 前回正常ログイン時間の表示を抑制する (Oracle 12c ~)
-R SQL*Plusコマンドの実行時の制約を設ける(大きいほど厳しい)
-S メッセージおよびプロンプト・初期メッセージの抑止 (サイレントモード)
サイレントモードの -S と 1度だけログオンする -L オプション はバッチ処理で有用なオプション
制限モード(RESTRICT オプション)の -R を指定すると ユーザープロファイル(login.sql)は読み込まれなくなる。サイトプロファイル(glogin.sql)は適用される。
制限モードの影響を受けるコマンドは、EDIT、GET、HOST、SAVE、SPOOL、START、STORE、および、その短縮記号である。
注意
F オプション (-F) は Oracle 12c から Failover から Fast にと目的自体が変更されており システム変数 の設定値がデフォルト状態より大きめにチューニングされている。
システム変数 デフォルト値 変更後 単位
-------------------------------------------------------
ARRAYSIZE 15 100 (行)
LOBPREFETCH 0 16384 (バイト)
PAGESIZE 14 50000 (行)
ROWPREFETCH 1 2 (行)
STATEMENTCACHE 0 20 (ステートメント)
自前の開発環境であれば -F(ast) よりも SQL*Plus プロファイル を使用した恒久的な環境整備をおすすめする。
Logon 構文
ログオンするユーザー情報を指定するためのオプション
{username[/password][@connect_identifier] | / } [AS {SYSOPER|SYSDBA}] | /NOLOG
・接続する
├ ・ユーザー名〜を指定して接続
│ username ユーザー名
│ password パスワード
│ connect_identifier 接続文字列(Net Service 接続識別子)
└ ・OS 認証を使用して接続
スラッシュ('/')
└ オペレーティング・システム認証を使用するデフォルト・ログイン
接続オプション
特権を付けて接続
AS {SYSOPER|SYSDBA} 特権を付けて接続を許可する
例) SQLPLUS "/ AS SYSDBA" ※使用する場合には二重引用符(")で囲むこと
最近のバージョンでは囲まなくても大丈夫(10g?)
・接続しない
└ /NOLOG
(NOLOGIN) Oracleへの初期接続を行わない。
初期接続を行なうとプロセス表示からアカウントとパスワードを
見られてしまうことがある。(もうすべてのプラットフォームで過去形?)
Start 構文
SQL*Plus の起動後に実行するスクリプトファイルや引数を指定するためのオプション
@{uri|file_name[.ext]} [arg ...]
・実行するファイル名と引数(引数はスペース区切り)
uri (winのみ) | file ( fileのデフォルトの拡張子は '.sql')
例) # sqlplus scott/tiger@orcl @execute_sqlfile.sql sql_parameters ...
パラメータなどに空白や特殊文字を含んでいる場合には、二重引用符(") で囲む
極端な例)
# sqlplus scott/"aa>>bbb<<ccc"@orcl @"a file name.sql" "aa bb" "aa" "bb"
Logon 構文の@connect_identifier と Start 構文の @filename[.ext] を混同しないように注意(スペースのあり、なしの違い)
SQL*Plus の典型的な起動例
データベースが同じマシン上で稼動している場合には・・・
データベースサーバー上でSQL*Plusを起動する
データベースが異なるマシン上で稼動している場合には・・・
リモートマシンからSQL*Plusを起動する