Dear Peter, I want to complement about another purpose. This is that declaring an SQL identifier.
In the oracle (and maybe DB2), the following example is not allowed: ... EXEC SQL DECLARE cursor CURSOR FOR stmt; ^^^^ EXEC SQL PREPARE stmt FOR "SELECT ..." ... This is caused because these preprocessor cannot recognize stmt as an SQL identifier and throw an error. I think DB2 might focus on here, so AT clause is not important for them. But ECPG can accept these sentences, so it has no meaning for postgres. That is why I did not mention about it and I focused on the omission of AT clause. Hayato Kuroda Fujitsu LIMITED