SQL*Plusコマンドラインを起動するには、オペレーティング・システムのプロンプトで、次のようにSQLPLUSコマンドを使用します。
SQLPLUS [ [Options] [Logon|/NOLOG] [Start] ]
Optionsの構文は、次のとおりです。
-H[ELP]|-V[ERSION] |[[-C[OMPATIBILITY] {x.y[.z]] [-L[OGON]] [-M[ARKUP] markup_option] [-NOLOGINTIME] [-R[ESTRICT] {1|2|3}] [-S[ILENT]] ]
また、markup_optionの構文は、次のとおりです。
HTML [ON|OFF] [HEAD text] [BODY text] [TABLE text] [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]
Logonの構文は、次のとおりです。
{username[/password][@connect_identifier]| / } [AS {SYSASM|SYSBACKUP|SYSDBA|SYSDG|SYSOPER|SYSKM}][edition=value]
[AS {SYSASM|SYSBACKUP|SYSDBA|SYSDG|SYSOPER|SYSRAC|SYSKM}][edition=value]
Startの構文は、次のとおりです。
@{url|file_name[.ext]} [arg ...]
警告:
パスワードをプレーン・テキストで指定すると、セキュリティ上の危険があります。パスワードを省略し、パスワードの入力を求めるプロンプトが表示された場合にのみ入力することで、この危険を回避できます。
Logonの入力は、オプションです。Logonを指定しないでStartを指定した場合、SQL*Plusでは、スクリプトの1行目に有効なログインが含まれているとみなされます。StartおよびLogonのいずれも指定しない場合、SQL*Plusに、ログイン情報の入力を求めるプロンプトが表示されます。
次の項で、SQLPLUSコマンドのオプションについて説明します。
-C[OMPATIBILITY] {x.y[.z]
SQLPLUSCOMPATIBILITYシステム変数の値を、x.y[.z]で指定したSQL*Plusのリリースに設定します。xはバージョン番号を、yはリリース番号を、zはアップデート番号を示します。たとえば、9.0.1や10.2などです。詳細は、SET SQLPLUSCOMPAT[IBILITY] {x.y[.z]}システム変数を参照してください。
-L[OGON]
初期接続に失敗した場合にユーザー名またはパスワードを求めるプロンプトを表示しないように指定します。これは、実行結果が明確に成功または失敗のいずれかになるオペレーティング・システム・スクリプトで有効です。また、データベース・サーバーが実行されていないときに、接続の詳細を求めるプロンプトが再度表示されないようにする場合にも有効です。
-M[ARKUP]
MARKUPオプションを使用すると、問合せまたはスクリプトから完全なスタンドアロンWebページを生成することができます。MARKUPオプションが現在サポートしているバージョンは、HTML 4.0 Transitionalです。
注意:
ご使用のオペレーティング・システムによっては、SQLPLUSコマンドのmarkup_option句全体を引用符で囲む必要があります。
SQLPLUS -MARKUP HTML ONまたはSQLPLUS -MARKUP HTML ON SPOOL ONを使用して、スタンドアロンWebページを生成します。SQL*Plusによって、<HTML>および<BODY>タグでカプセル化された完全なHTMLページが自動的に生成されます。SPOOL OFFを実行するか、またはSQL*Plusを終了すると、スプール・ファイルのHTMLタグが閉じます。
-SILENTおよび-RESTRICTコマンドライン・オプションは、-MARKUPと組み合せて使用すると有効です。
MARKUP HTML ONを使用すると、<PRE>タグまたはHTML表のいずれかにHTML出力を生成できます。表への出力では、標準のHTMLタグ<TABLE>、<TR>および<TD>が使用され、問合せ結果の行および列が自動的にエンコードされます。HTMLオプションの設定がONの場合、デフォルトではHTML表に出力されます。PREFORMAT ONを設定すると、HTMLタグ<PRE>を使用して出力を生成できます。
SQL*Plusで、MARKUPオプションの状態を表示するには、SHOW MARKUPコマンドを使用します。
SQLPLUS -MARKUPコマンドには、SET MARKUPコマンドと機能的に同等なオプションがあります。これらのオプションについては、この項で説明しています。SET MARKUPコマンドの詳細は、「SET」コマンドを参照してください。
HTML [ON|OFF]
HTMLは、生成される出力タイプをHTMLに指定するMARKUPの必須引数です。HTML引数ONおよびOFFは、HTML出力を生成するかどうかを指定します(オプション)。デフォルトはOFFです。
MARKUP HTML ONを使用すると、指定したMARKUPオプションに従ってHTML出力が生成されます。
HTML出力のONおよびOFFは、セッション中、必要に応じて切り替えることができます。デフォルトはOFFです。
HEAD text
HEAD textオプションでは、<HEAD>タグの内容を指定できます。デフォルトでは、textにデフォルトのインライン・カスケード・スタイルシートとタイトルが含まれます。
textに空白が含まれる場合は、引用符で囲む必要があります。SQL*Plusでは、このような自由文の入力について、HTMLの妥当性をテストしません。入力するテキストがHTMLの<HEAD>タグの内容として妥当であるかどうかは、各自が確認する必要があります。これによって、出力を、ご使用のブラウザや固有のニーズに応じて柔軟にカスタマイズできます。
BODY text
BODY textオプションでは、<BODY>タグの属性を指定できます。デフォルトでは、属性は付いていません。textに空白が含まれる場合は、引用符で囲む必要があります。SQL*Plusでは、このような自由文の入力について、HTMLの妥当性をテストしません。入力するテキストがHTMLの<BODY>タグの内容として妥当であるかどうかは、各自が確認する必要があります。これによって、出力を、ご使用のブラウザや固有のニーズに応じて柔軟にカスタマイズできます。
TABLE text
TABLE textオプションでは、<TABLE>タグの属性を入力できます。TABLE textを使用して、HTMLの<TABLE>タグのBORDER、CELLPADDING、CELLSPACING、WIDTHなどの属性を設定できます。デフォルトでは、<TABLE>のWIDTH属性は90%、BORDER属性は1に設定されます。
textに空白が含まれる場合は、引用符で囲む必要があります。SQL*Plusでは、このような自由文の入力について、HTMLの妥当性をテストしません。入力するテキストがHTMLの<TABLE>タグの内容として妥当であるかどうかは、各自が確認する必要があります。これによって、出力を、ご使用のブラウザや固有のニーズに応じて柔軟にカスタマイズできます。
ENTMAP {ON|OFF}
ENTMAP ONまたはOFFでは、特殊文字「<」、「>」、「"」および「&」を、SQL*PlusでそれぞれのHTMLエンティティ「<」、「>」、「"」および「&」に置き換えるかどうかを指定できます。ENTMAPは、デフォルトでONに設定されています。
ENTMAPのONおよびOFFは、セッション中、必要に応じて切り替えることができます。たとえば、ENTMAP OFFを指定すると、SQL*Plus画面出力は次のようになります。
SQL>PROMPT A > B A > B
ENTMAP ONを指定すると、SQL*Plus画面出力は次のようになります。
SQL> PROMPT A > B A > B
<HEAD>タグおよび<BODY>タグのエンティティがマップされていない場合、MARKUP HEADオプションおよびMARKUP BODYオプションで有効なエンティティが使用されていることを確認する必要があります。
エンティティがマップされていない場合、Webブラウザは、データを無効なHTMLとして処理するため、それ以降すべての出力が正しく表示されなくなります。ENTMAP OFFを使用すると、独自のHTMLタグを書き込んで出力をカスタマイズできます。
注意:
ENTMAPは、HTMLオプションがONに設定されている場合にのみ有効です。出力でのエンティティの使用方法の詳細は、「COLUMN」コマンドを参照してください。
SPOOL {ON|OFF}
SPOOL ONまたはOFFでは、SQL*PlusのSPOOL filenameコマンドで作成された各ファイルの始めと終わりに、HTML開始タグの<HTML>タグと<BODY>タグ、および終了タグの</BODY>タグと</HTML>タグを書き込むかどうかを指定できます。デフォルトはOFFです。
SPOOLのONおよびOFFは、セッション中、必要に応じて切り替えることができます。
注意:
SET MARKUP HTML SPOOLオプションとSQLPLUSのSPOOL filenameコマンドの違いを十分に理解する必要があります。
SET MARKUP HTML SPOOL ONオプションでは、スプール・ファイルへの<HTML>タグの書込みを指定できます。SQLPLUSのSPOOL filenameコマンドを実行するまで、スプール・ファイルは作成されず、SET MARKUP HTML SPOOL ONオプションで有効化されたヘッダーおよびフッター・タグをスプール・ファイルに書き込むこともできません。詳細は、「SPOOL」コマンドを参照してください。
SPOOL filenameコマンドを実行すると、SQL*Plusによって複数のHTMLタグがスプール・ファイルに書き込まれます。
EXIT、SPOOL OFFまたはSPOOL filenameのいずれかのSQL*Plusコマンドを実行すると、SQL*Plusによって次の終了タグが書き込まれ、ファイルが閉じます。
</BODY> </HTML>
<HEAD>タグの内容および<BODY>の属性は、HEADおよびBODYオプションを使用して指定できます。
PRE[FORMAT] {ON|OFF}
PREFORMAT ONまたはOFFでは、出力を、SQL*Plusによって<PRE>タグまたはHTML表に書き出すかどうかを指定できます。デフォルトはOFFで、出力はHTML表に書き出されます。PREFORMATのONおよびOFFは、セッション中、必要に応じて切り替えることができます。
注意:
HTMLの<PRE>タグを使用したレポート出力を生成するには、PREFORMAT ONを設定する必要があります。次に例を示します。
SQLPLUS -M "HTML ON PREFORMAT ON"
または
SET MARKUP HTML ON PREFORMAT ON
MARKUP HTML ON PREFORMAT OFFが指定されている場合、基本的に紙のレポートの書式を設定するためのコマンドには、HTML表のレポートに対する場合とは異なる、次のような意味があります。
PAGESIZEは、HTML表での行数であり、単なる行数ではありません。各行には、複数の行が含まれる場合があります。TTITLE、BTITLEおよび列ヘッダーは、各PAGESIZE行で繰り返されます。
LINESIZEは行を折り返す場合、または非常に長いデータの場合に有効になります。データ・サイズによっては、出力は別々の行に生成され、ブラウザによって空白文字として解釈される場合があります。
TTITLEおよびBTITLEの内容は、3つの行位置(左、中央および右)に出力され、最大行幅はブラウザのウィンドウの90%に設定されています。これらの要素は、Webでの出力とは揃わない場合があります。TTITLEおよびBTITLEでのエンティティのマッピングは、MARKUPコマンドで指定する一般的なENTMAPの設定と同じです。
独自の出力でタイトルを使用する場合、SQL*Plusによって新しいHTML表が開始され、タイトルの後に出力行が表示されます。各列のデータの幅によって、ご使用のブラウザでは、各表の列幅が異なる書式に設定される場合があります。
PREFORMATがONの場合、SET COLSEP、RECSEPおよびUNDERLINEのみが、HTMLレポート出力を生成します。
-nologintime
ログオン時に、SYS以外のユーザーの最終ログイン時間が表示されます。この機能はデフォルトで有効化されています。最終ログイン時間はローカル時間の形式で表示されます。このセキュリティ機能は、-nologintime
オプションを使用して無効にできます。ログイン後に、最終ログイン情報が表示されます。
SQL*Plus: Release 12.1.0.1.0 Production on Tue Jan 24 20:56:48 2012 Copyright (c) 1982, 2012, Oracle. All rights reserved. Last Successful login time: Wed Jan 18 2012 07:39:37 -07:00 Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, Oracle Label Security, Data Mining and Real Application
CONNECTコマンドを使用して接続を確立した場合、最終ログイン時間は表示されません。
-R[ESTRICT] {1|2|3}
オペレーティング・システムと対話する特定のコマンドを使用禁止にすることができます。これは、PUP(Product User Profile)表の同じコマンドを使用禁止にする場合と同様です。ただし、-RESTRICTオプションで使用禁止にされたコマンドは、サーバーに接続していない場合も使用不可能で、SQL*Plusを終了するまで使用禁止のままです。
-RESTRICTオプションが指定されていない場合は、PUP表で使用禁止に設定されていないかぎり、すべてのコマンドが使用可能です。
-RESTRICTを指定すると、LOGIN.SQLは読み込まれません。GLOGIN.SQLは読み込まれますが、制限付きのコマンドを使用すると、正常に実行されません。
表3-1 各制限レベルでの使用禁止コマンド
コマンド | レベル1 | レベル2 | レベル3 |
---|---|---|---|
EDIT |
使用禁止 |
使用禁止 |
使用禁止 |
GET |
使用禁止 |
||
HOST |
使用禁止 |
使用禁止 |
使用禁止 |
SAVE |
使用禁止 |
使用禁止 |
|
SPOOL |
使用禁止 |
使用禁止 |
|
START、@、@@ |
使用禁止 |
||
STORE |
使用禁止 |
使用禁止 |
-S[ILENT]
すべてのSQL*Plus情報メッセージおよびプロンプト・メッセージを非表示にします。コマンド・プロンプト、コマンドのエコーおよびSQL*Plusの起動時に通常表示されるバナーも非表示になります。usernameまたはpasswordを省略すると、SQL*Plusによって入力が求められますが、プロンプトは表示されません。ユーザーには見えないようにSQL*Plusを使用するには、SILENTを使用して別のプログラム内でSQL*Plusを起動します。
SILENTは、CGIを含むSQLPLUS -MARKUPコマンドやオペレーティング・システムのスクリプトを使用して、Web用のレポートを作成する場合に有効なモードです。SILENTオプションを使用して作成されたレポートでは、SQL*Plusのバナーおよびプロンプトは表示されません。
username[/password]
SQL*Plusを起動し、Oracle Databaseに接続するためのユーザー名およびパスワードを指定します。
警告:
パスワードをプレーン・テキストで指定すると、セキュリティ上の危険があります。パスワードを省略し、パスワードの入力を求めるプロンプトが表示された場合にのみ入力することで、この危険を回避できます。
usernameおよびpasswordを省略すると、SQL*Plusは入力を求めるプロンプトを表示します。passwordのみを省略すると、passwordの入力を求めるプロンプトが表示されます。サイレント・モードでは、usernameおよびpasswordのプロンプトは表示されません。usernameを入力した場合は表示されますが、パスワードは表示されません。
@connect_identifier
Oracle Net接続識別子で構成されます。正確な構文は、使用するOracle Net通信プロトコルによって異なります。詳細は、Oracle Netのマニュアルを参照するか、またはデータベース管理者に問い合せてください。
edition=value
Oracleエディションの値です。1つのエディションによって、データベース内に1つのオブジェクトの2つ以上のバージョンが存在できます。これにより、変更したオブジェクトをデータベースにロードし、コンパイルして稼働時間中に実行するためのステージング領域が提供されます。このことは、特に、アプリケーションへのパッチ適用に関連する停止時間を短縮する場合に有用です。eedition=valueは、ORA_EDITION環境変数で指定されたエディション値よりも優先されます。詳細は、『Oracle Database管理者ガイド』を参照してください。
/
オペレーティング・システム認証を使用するデフォルト・ログオンを表します。デフォルト・ログオンを使用する場合、接続識別子は指定できません。デフォルト・ログオンでは通常、SQL*Plusはユーザー名OPS$nameを使用してユーザーをログインさせようとします。nameは、ご使用のオペレーティング・システムのユーザー名です。接頭辞「OPS$」は、他のテキスト文字列に設定される場合もあります。たとえば、INIT.ORAパラメータ・ファイルの設定をLOGONnameまたはUSERIDnameに変更した場合です。オペレーティング・システム認証の詳細は、『Oracle Database管理者ガイド』を参照してください。
AS {SYSASM | SYSBACKUP | SYSDBA | SYSDG | SYSOPER | SYSKM}
AS句を使用すると、SYSASM、SYSBACKUP、SYSDBA、SYSDG、SYSOPERまたはSYSKMシステム権限が付与されているユーザーによる特権付き接続が可能です。詳細は、『Oracle Database管理者ガイド』を参照してください。
AS {SYSASM | SYSBACKUP | SYSDBA | SYSDG | SYSOPER | SYSRAC | SYSKM}
AS 句を使用すると、SYSASM、SYSBACKUP、SYSDBA、SYSDG、SYSOPER、SYSRACまたはSYSKMシステム権限が付与されているユーザーによる特権付き接続が可能です。詳細は、『Oracle Database管理者ガイド』を参照してください。
/NOLOG
Oracle Databaseへの初期接続を確立しません。SQLコマンドを実行する前に、CONNECTコマンドを実行して有効なログインを確立する必要があります。ユーザー名、パスワードまたはデータベースを指定するためのプロンプトを、SQL*Plusスクリプトから表示するには、「/NOLOG」を使用します。このスクリプトの1行目には、ログインが含まれていないものとみなされます。
@{url|file_name[.ext]} [arg ...]
スクリプトの名前および実行する引数を指定します。スクリプトは、ローカル・ファイル・システムまたはWebサーバーからコールされます。
SQL*Plusでは、SQL*PlusのSTARTコマンドを使用してファイルを実行した場合と同様に、引数がスクリプトに渡されます。ファイルに拡張子が指定されていない場合は、SET SUFFIXコマンドで定義された拡張子が使用されます。デフォルトの拡張子は、.sqlです。
詳細は、「START」コマンドを参照してください。