I'm getting the following error when running a JPQL query that involves CONCAT and UPPER on an Informix 11.7 database:
Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Routine (upper) ambiguous - more than one routine resolves to given signature.
Error Code: -9700
Call: SELECT
t0.id FROM informix.id_rec t0, informix.aa_table t2, informix.aa_rec t1 WHERE ((((NOT EXISTS (SELECT 1 FROM informix.profile_rec t3 WHERE (
t3.id =
t0.id)) AND ((t0.valid IS NULL) OR (t0.valid <> 'N'))) AND (t2.email = 'Y')) AND UPPER(((RTRIM(LTRIM(t1.line1)) + RTRIM(LTRIM(t1.line2))) + RTRIM(LTRIM(t1.line3)))) LIKE ?) AND ((
t0.id =
t1.id) AND (t2.aa = t1.aa))) ORDER BY
t0.id ASC
bind => [1 parameter bound]
Note the "+" being used. Is that a JDBC escape syntax, or is the InformixPlatform not correctly using the Informix-specific "||" concatenation operator?
Any idea why UPPER can't be resolved on Informix?
Best,
Laird
--
http://about.me/lairdnelson