[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-6655) trim function on DB2 is broken
Steve Ebersole (JIRA)
noreply at atlassian.com
Wed Sep 14 13:54:32 EDT 2011
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-6655?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=43514#comment-43514 ]
Steve Ebersole commented on HHH-6655:
-------------------------------------
This is not "broken". The error you are getting is related to an invalid use of bind variables (parameters) according to db2.
>From http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/core/rsql0400.htm :
{quote}
SQL0418N A statement contains a use of a parameter marker that is not valid.
Explanation:
Untyped parameter markers cannot be used:
in a SELECT list
as the sole argument of a datetime arithmetic operation
in some cases as the sole argument of a scalar function
as a sort key in an ORDER BY clause
Parameter markers can never be used:
in a statement that is not a prepared statement
in the fullselect of a CREATE VIEW statement
in the triggered action of a CREATE TRIGGER statement
in a query captured by DB2 Query Patroller
{quote}
> trim function on DB2 is broken
> ------------------------------
>
> Key: HHH-6655
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-6655
> Project: Hibernate Core
> Issue Type: Bug
> Affects Versions: 4.0.0.CR2
> Reporter: Strong Liu
> Assignee: Steve Ebersole
> Fix For: 4.0.0.CR3
>
>
> For DB2 a warning message is generated by TempateRenderer which is not seen for other databases:
> WARN: HHH00174:Function template anticipated 3 arguments, but 2 arguments encountered
> see test _org.hibernate.ejb.criteria.CriteriaCompilingTest#testTrim_ for more details
> Also the query created is different in case of DB2:
> Hibernate: select replace(replace(ltrim(rtrim(replace(replace(customer0_.NAME,' ','${space}$'),?,' '))),' ',?),'${space}$',' ') as col_0_0_ from CUSTOMER_TABLE customer0_ where customer0_.NAME=? fetch first 2 rows only
> and finally it fails because of above warning:
> javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: DB2 SQL Error: SQLCODE=-313, SQLSTATE=07001
> For other DBs same code generates following query and test passes:
> Hibernate: select trim(BOTH ? from customer0_.NAME) as col_0_0_ from CUSTOMER_TABLE customer0_ where customer0_.NAME=? limit ?
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list