複数行の結果セットを受け取るためには、アプリケーションはカーソルを定義し、必要に応じてレコードを一行ずつ取り込む必要があります。カーソルを使った処理は、カーソルの宣言、カーソルのオープン、カーソルからのFETCH、カーソルのクローズという流れになります。
EXEC SQL DECLARE foo_bar CURSOR FOR SELECT number, ascii FROM foo ORDER BY ascii END-EXEC. EXEC SQL OPEN foo_bar END-EXEC. EXEC SQL FETCH foo_bar INTO :FooBar, :DooDad END-EXEC. ... EXEC SQL CLOSE foo_bar END-EXEC. EXEC SQL COMMIT END-EXEC.
カーソルの宣言の詳細については“D.11.4 DECLARE”を、FETCHコマンドの詳細については“PostgreSQL文書”の“リファレンス”の“SQL コマンド”を参照してください。
注意: ECOBPGのDECLAREコマンド自身は、PostgreSQLバックエンドに送られるSQL文を実行しません。OPEN コマンドが実行された段階で、バックエンド内部で(DECLAREコマンドで宣言された)カーソルが開かれます。