埋め込みSQL タスクを使用する場合、Magic uniPaaSはSQL ステートメントをデータベースに送ります。データベースは、文字か数字の文字列としてSQL ステートメントを受け取り、それを解析し実行します。
SQL ステートメントの一部は、事前に定義された値に対するプレイスホルダになることができます。
プレイスホルダを値に置き換えることは「バインディング」と呼ばれます。これによって、データベースによるSQL ステートメントの解析処理が何度も行われることがなくなります。
バインディング変数の制限
SQLステートメントのバインディング変数は、Oracle でのみ有効です。
バインディング変数は、SELECTステートメントか戻り値を返すストアドプロシジャでのみ有効です。
バインディング変数は、チルダ(~) で指定します。例えば以下のように指定します。
Select * from table where field1 = ~1 and field2 > ~2 |
バインディング変数は、文字型と論理型、数値型でサポートされます。文字列に対して、アポストロフィ(`)は、必要ありません。Magic uniPaaSは、日付型や時刻型、論理型、数値型は、数値として扱います。
Oracle 上のパラレルデータタイプが数値の場合、バインディング変数が使用できます。
注意: |
バウンド(~) とアンバウンド指定を含んだSQLステートメントでは、バインディング変数の利点が無効になります。 |