Table of ContentsPreviousNext

Ispirer             Ispirer


Ispirer SQLWays データベース移行ソフトウェア

パラメータ付き動的SQLステートメントの実行

このセクションでは様々なデータベースのパラメータ付き動的SQLステートメントの実行とSQLWaysによる変換について記述します。

TABLE 41. パラメータ付き動的SQLステートメントの実行
データベース
構文
説明
Microsoft SQL Server
EXEC [UTE] sp_executesql  
N'dynamic_compound_string' | 
@dynamic_statement         [  
 N'param_defined_string' | 
dynamic_param_definition                                  
[@param1=]value1 
[,[@paramN=]valueN]... 
] 
sp_executesql付きのEXECUTEステートメントは動的な複合ステートメントを含むSQLステートメントを実行します。動的複合ステートメントには埋め込みパラメータを設定することができます。
 
パラメータ
 
N'dynamic_compound_string' | @dynamic_statement - 文字列または変数として定義された実行可能なSQLステートメント
 
N'param_defined_string' | dynamic_param_definition - 実行可能なSQLステートメント用の入力パラメータである文字列または変数
 
 
それぞれのパラメータはパラメータの名前とデータ型で定義されます。パラメータのデフォルト値はNULLです。
 
[@param1=] value1 はパラメータの値であり、定数または変数が設定できます。動的ステートメントに含まれる全てのパラメータには値の設定が必須です。
 
以下のステートメントはパラメータ化された動的SELECTステートメントに入力パラメータを与えて実行しています。
execute sp_executesql           N'select * from tab1 where col1 = 
@param', 
N'@param int', 
@param = 35 
Oracle
EXECUTE IMMEDIATE 
dynamic_string 
   [ INTO { ret_value1 [, 
retvalueN]... | record_name} ] 
   [ USING [ {IN | OUT | IN OUT} ] 
value1, [,valueN]...]; 
EXECUTE IMMEDIATEステートメントはOracleで動的SQLステートメントを実行するのに使われます。
 
パラメータ
dynamic_string - 文字列、変数、または式として定義された実行可能SQLステートメント。入力パラメータは :N と表記されます。NはUSING句内のパラメータの番号を示します。
 
ret_valueN, record_name - INTO句はカラムの値が格納される変数またはレコードを示します。INTO句は単一ロークエリでのみ使用されます。
 
[ IN | OUT | IN OUT ] valueN - USING句はパラメータの入/出力値のリストを示します。デフォルトでは valueN はINパラメータです。
 
下の例ではパラメータ付きの動的複合INSERTステートメントを実行しています。
 
sql_dString := 'INSERT INTO tab1 VALUES (:1, :2, :3)';
EXECUTE IMMEDIATE sql_dString USING 77, 21, variable1;


Table of ContentsPreviousNext
Ispirer             Ispirer
Copyright © 1999-2015 Ispirer Systems Ltd. Ispirer and SQLWays are trademarks of Ispirer Systems Ltd. All other product names may be trademarks of the respective companies. All rights reserved.