旧・無印吉澤

昔はてなダイアリーに書いていた記事のアーカイブです

ecpgの罠(1)

EXEC SQL BEGIN DECLARE SECTION; と EXEC SQL END DECLARE SECTION; で囲まれたホスト変数定義部分の中でVARCHARを宣言したいとき、以下のようにしてしまうとコンパイル時に意味不明なparse errorが出ます。

VARCHAR a[128], b[128];

これは、以下のようにaとbを分けて定義すると解決出来ます。ecpgによるCのコード生成時に問題になるっぽいですね。

VARCHAR a[128];
VARCHAR b[128];