Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 文 » SQL 文 (E ~ O)

 

EXECUTE 文 [T-SQL]

構文 1 は、Adaptive Server Enterprise と互換性のある、CALL 文の代替としてプロシージャを呼び出すために使用します。構文 2 は、Transact-SQL で準備された SQL 文を実行するために使用します。

構文 1
EXECUTE [ @return_status = ] [creator.]procedure_name [ argument, ... ]
argument :
 [ @parameter-name = ] expression
| [ @parameter-name = ] @variable [ output ]
構文 2
EXECUTE ( string-expression )
備考

構文 1 はストアド・プロシージャを実行します。オプションとしてプロシージャ・パラメータを指定し、出力された値を取得し、ステータス情報を返します。

EXECUTE 文は、Transact-SQL 互換性のために用意されていますが、Transact-SQL または Watcom-SQL のバッチとプロシージャにも使えます。

構文 2 を使用すると、Transact-SQL のストアド・プロシージャとトリガの中で文を実行できます。EXECUTE 文は、プロシージャとトリガの中から実行できる文の種類を増やします。これを使って、プロシージャに渡されるパラメータを使って作成された文のように、動的に作成された文を実行できます。文の中のリテラル文字列は、一重引用符で囲みます。また、文は 1 行にしてください。

Transact-SQL の EXECUTE 文には、結果セットを予期することを示す方法はありません。Transact-SQL プロシージャが結果セットを返すことを示すには、一例として次のような情報を指定する方法があります。

IF 1 = 0 THEN
      SELECT 1 AS a

Transact-SQL のストアド・プロシージャとトリガの中で文を実行することもできます。EXECUTE IMMEDIATE 文 [SP]を参照してください。

パーミッション

プロシージャの所有者であるか、そのプロシージャに対する EXECUTE パーミッションまたは DBA 権限が必要です。

関連する動作

なし

参照

次のプロシージャは、構文 1 を示します。

CREATE PROCEDURE p1( @var INTEGER = 54 )
AS
PRINT 'on input @var = %1!', @var
DECLARE @intvar integer
SELECT @intvar=123
SELECT @var=@intvar
PRINT 'on exit @var = %1!', @var;

次の文は、パラメータに 23 の入力値を提供するプロシージャを実行します。Open Client または JDBC アプリケーションから接続している場合は、クライアントのウィンドウに PRINT メッセージが表示されます。ODBC または Embedded SQL アプリケーションから接続している場合、このメッセージはデータベース・サーバ・メッセージ・ウィンドウに表示されます。

EXECUTE p1 23;

次の文はプロシージャを実行する代替方法です。これは、パラメータがいくつかあるときに便利です。

EXECUTE p1 @var = 23;

次の文は、パラメータにデフォルト値を使用するプロシージャを実行します。

EXECUTE p1;

次の文は、プロシージャを実行し、リターン状況をチェックするために変数へのリターン値を保管します。

EXECUTE @status = p1 23;