例えば問い合わせ内のパラメータとして、プログラムからデータベースへデータを渡す、もしくは、データベースからプログラムへデータを渡すためには、このようなデータを含むように意図されたCOBOL変数を、埋め込みSQLプリプロセッサが管理できるように、特殊な印のついたセクションで宣言する必要があります。
このセクションは以下で始まります。
EXEC SQL BEGIN DECLARE SECTION END-EXEC.
そして、以下で終わります。
EXEC SQL END DECLARE SECTION END-EXEC.
この行の間は、以下のような通常のCOBOL変数宣言でなければなりません。
01 INTX PIC S9(9) COMP VALUE 4. 01 FOO PIC X(15). 01 BAR PIC X(15).
見てわかるとおり、省略可能ですが、変数に初期値を代入することができます。 変数のスコープはプログラム内の宣言セクションの位置により決まります。
プログラム内に複数の宣言セクションを持たせることができます。
また、宣言は普通のCOBOL変数としてそのまま出力ファイルに出力されます。 ですので、これらを再度宣言する必要はありません。 通常、SQLコマンドで使用する予定がない変数はこの特別なセクションの外側で宣言されます。
集団項目の定義もまた、DECLAREセクションの内側で表す必要があります。 さもないと、プリプロセッサはその定義が不明であるために、これらの型を扱うことができません。