Cで既知の#define指示子と同様、埋め込みSQLでも似たような概念を持ちます。
EXEC SQL DEFINE name END-EXEC. EXEC SQL DEFINE name value END-EXEC.
このため、以下のように名前を定義することができます。
EXEC SQL DEFINE HAVE_FEATURE END-EXEC.
また、定数を定義することもできます。
EXEC SQL DEFINE MYNUMBER 12 END-EXEC. EXEC SQL DEFINE MYSTRING 'abc' END-EXEC.
事前の定義を削除するにはundefを使用します。
EXEC SQL UNDEF MYNUMBER END-EXEC.
SQL文内の定数は、EXEC SQL DEFINEによって置き換えられるだけであることに注意してください。置換によって1行の文字数が変わる場合がありますが、 ecobpgは置換後の1行の文字数の妥当性をチェックしません。1行の文字数の制限に収まるようにDEFINEを使用してください。