EGL を使用すると、EGL プログラムで明示的 SQL コードを扱うことができます。
EGL では、SQL のコーディングを行わずに、洗練されたデータベース操作をある程度行うことができます。ただし、熟練した SQL プログラマーであれば、SQL でコーディングした場合と同じレベルの制御を行いたい場合もあります。EGL は、#sql ディレクティブを介して、このようなプログラマーの要望を満たします。
get myCustomer with #sql{
select C_NUMBER, C_NAME, C_ADDR1, C_ADDR2, C_ADDR3, C_BALANCE
from ADMINISTRATOR.CUSTOMER L1
where C_NUMBER = :myCustomer.customerNumber };
このコードを変更して、SELECT ステートメントを微調整できます。詳しくは、暗黙の SQL ステートメントの表示を参照してください。#sql ディレクティブを使用してストアード・プロシージャーを呼び出すこともできます (ストアード・プロシージャーの呼び出しを参照してください)。
前述の例では、変数 myCustomer.customerNumber の前にコロンが付けられています。これは、EGL に対し、SQL 表ではなく EGL プログラムからその変数名を探すように指示するものです。 EGL は SQL をホスティングするプログラム言語であるため、このような変数は、ホスト変数 と呼ばれます。 SQL を独立の言語として実行することはできません。