ヘッダーをスキップ
SQL*Plusユーザーズ・ガイドおよびリファレンス
リリース11.1
E05784-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

@@(二重アットマーク)

構文

@@{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というスクリプトが検索され、実行されます。