構文
@@{url | file_name[.ext] } [arg...]
スクリプトを実行します。 このコマンドは、@(アットマーク)コマンドとほぼ同じです。 ネストしたスクリプトを実行すると、このコマンドはコールされたスクリプトと同じパス内またはurlでネストしたスクリプトを検索します。 @@コマンドは、@およびSTARTと同様の働きをします。
項
url
指定したWebサーバーで実行するスクリプトのURLを指定します。 SQL*Plusは、HTTPおよびFTPプロトコルをサポートしますが、HTTPSはサポートしません。 今回のリリースでは、http://username:password@machine_name.domain...形式のHTTP認証はサポートされていません。
file_name[.ext]
実行するネストしたスクリプトを指定します。 extを指定しない場合、SQL*Plusは、デフォルトのコマンド・ファイル拡張子(通常はSQL)が指定されたものとみなします。 デフォルトの拡張子を変更する方法については、「SET SUF[FIX] {SQL | text}」を参照してください。
あるスクリプトから、@@file_name.extを入力すると、SQL*Plusは、そのスクリプトと同じディレクトリからfile_name.extを実行します。
@@file_name.extを対話形式で入力すると、SQL*Plusは、現行の作業ディレクトリ、またはこのコマンドがコールされたスクリプトと同じurlからfile_name.extを実行します。 該当するファイルが見つからない場合、SQL*Plusは、そのファイルを見つけるためにシステム依存パスを検索します。 オペレーティング・システムによっては、このパス検索がサポートされていない場合もあります。 オペレーティング・システム固有の情報については、ご使用のオペレーティング・システムのプラットフォーム固有のOracleマニュアルを参照してください。
arg...
スクリプト内のパラメータに渡すデータ項目を指定します。 1つ以上の引数を入力すると、SQL*Plusは、該当する値をスクリプトのパラメータ(&1、&2など)に代入します。 最初の引数によって、出現したすべての&1が置換され、2番目の引数によって、出現したすべての&2が置換されます。
@@コマンドは、引数に値を指定してパラメータを定義します。 このセッションで同じスクリプトを再度実行する場合は、新しい引数を入力することも、引数を省略して現行の値を使用することもできます。 パラメータの使用方法の詳細は、「置換変数の使用」を参照してください。
使用方法
スクリプト起動時は、COLUMNコマンドなどで事前に設定されたすべての内容が有効です。 スクリプトで設定が変更される場合、新しい値が有効になるのは、スクリプト終了後です。
スクリプトには、通常、対話形式で入力するコマンド(主に、SQLコマンドまたはSQL*Plusコマンド)であれば、どのコマンドでも組み込むことができます。
STARTコマンドを使用禁止にすると(「SQL*Plus、SQLおよびPL/SQLコマンドの使用禁止」を参照)、同時に@@コマンドも使用禁止になります。 詳細は、「SPOOL」を参照してください。
SQL*Plusは、@@コマンドを実行する前にSQLTERMINATOR(デフォルトではセミコロン)を削除します。 これに対処するには、SQLTERMINATORをもう1つ追加します。 詳細は、「SET SQLT[ERMINATOR] {; | c | ON | OFF}」を参照してください。
例
PRINTRPTという次のようなスクリプトがあるとします。
SELECT DEPARTMENT_ID, CITY FROM EMP_DETAILS_VIEW WHERE SALARY>12000;@EMPRPT.SQL@@ WKRPT.SQL
PRINTRPTを起動し、@コマンドの部分になると、現行の作業ディレクトリ内でEMPRPTというスクリプトが検索され、実行されます。 PRINTRPTの@@コマンドの部分では、PRINTRPTと同じパスの中でWKRPTというスクリプトが検索され、実行されます。
同じスクリプトPRINTRPTがWebサーバー上にあり、START HTTP://machine_name.domain:port/PRINTRPTで実行するとします。 @コマンドの部分になると、現行の作業ディレクトリ内でEMPRPTというスクリプトが検索され、実行されます。 PRINTRPTの@@コマンドの部分では、PRINTRPTと同じurl(HTTP://machine_name.domain:port/WKRPT.SQL)でWKRPTというスクリプトが検索され、実行されます。