SQL のコンテキストでは、EGL execute 文の一般的な用途は、動的要素を使用した準備済み SQL 文を実行することです。
この文を使用して、暗黙の delete、insert、または update 照会を作成したり、 使用可能なコマンドの限られたリストから組み込み SQL を作成したりすることもできます。

onException (sqlEx SQLException)
if (myCustomer is unique)
myErrorHandler(8);
end
end
WHERE CURRENT OF resultSetID
#sql と左中括弧の間にスペースを入れないでください。
execute 文を使用して暗黙の SQL を生成し、最初に EGL の open または get を実行せずに、特定のデータベース操作を実行することができます。 通常、EGL は、SQL データベース・アクセスの詳細 (結果セットの行の位置の操作など) を隠します。 execute 文で、SQL レコード・パーツの defaultSelectCondition プロパティーを設定することにより、変更したいデータベースの行を直接指定できます。
execute delete myCustomer;
保護がないため、これらの暗黙の SQL コマンドを使用する際は注意してください。
暗黙の SQL DELETE 文は、defaultSelectCondition SQL レコード・プロパティーを使用して、削除するテーブル行を決定します。 これは、SQL テーブルの各キー列の値が、SQL レコード変数の対応するキー・フィールドの値と等しいことが前提です。 レコード・キーもデフォルトの選択条件も指定しなかった場合は、すべてのテーブルの行が削除されます。
DELETE FROM tableName
WHERE [ defaultSelectCondition AND ]
keyColumn01 = :keyField01 [ AND
...
keyColumnnn = :keyFieldnn ]
単一 EGL 文を使用して、複数のデータベース表から行を削除することはできません。
INSERT INTO tableName
(column01, ... columnNN)
values (:recordField01, ... :recordFieldNN)
UPDATE tableName
SET column01 = :recordField01,
column02 = :recordField01, ...
columnNN = :recordFieldNN
WHERE keyColumn01 = :keyField01 [ AND
...
keyColumnnn = :keyFieldnn ]
execute #sql{
DELETE FROM Customer
WHERE last_order_date < :targetDate
};
EGL 変数 targetDate が、SQL コードのホスト変数 (前にコロンが付く) になります。詳しくは、ホスト変数を参照してください。
同様の構文を使用して、SQL の INSERT 文または UPDATE 文を組み込むこともできます。
EGL の execute 文を使用して、結果セットを戻す SQL 文を組み込むことはできません。 これは、ユーザーがカーソルを直接制御することができないためです。カーソルの定義と管理は、すべて EGL が内部的に処理します。
execute #sql{
create table Customer (
customer_number int not null,
customer_name char(40) not null,
customer_balance decimal(9,2) not null)
};
execute update for myCustomer;
execute #sql{
call aStoredProcedure( :parameterVar)
};
execute myPreparedStatement;
暗黙の delete、insert、または update 照会を呼び出して、SQL レコード変数を指定しないと、宣言時間エラーが発生します。
唯一の使用可能なホスト変数が、読み取り専用である場合、暗黙の insert または update 照会にエラーが発生します。