Я получаю синтаксическое исключение из Sybase ASE 12.5.3. потому что #t temp-таблица передается серверу sql в качестве параметра. Если JPQL (Eclipselink в Glassfish 3.1.2) просто оставит его так, как будто он будет работать. Я тестирую его в своем редакторе SQL.Временная таблица JPQL с Sybase ASE
String sql =
"select convert(date, remsfSEND) as send, remsID "
+ "into #t "
+ "from prd.REMEMBERSEARCHFOUND "
+ "where remsfSEND is not null "
+ "group by convert(date, remsfSEND), remsID "
+ " \n"
+ "select send, count(*) "
+ "from #t "
+ "group by send ";
Query query = em_local.createNativeQuery(sql);
List<Object []> list = query.getResultList();
List<RememberSearchStatItem> res = new ArrayList<RememberSearchStatItem>();
for (Object [] o : list) {
res.add(new RememberSearchStatItem((Date)o[0], (Integer)o[1]));
}
return res;
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461):
org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.sybase.jdbc3.jdbc.SybSQLException: Falsche Syntax bei '@p0'.
Error Code: 102