Hello camel user community,

I have strange problem with a Microsoft sql server database joined query where 
I would like to have some advice.

I have 2 spring dsl steps in a route:
<to uri="sql://select s.SITENAME, l.LOCATIONNAME from VGMSITE s, VGMLOCATION l 
where l.SITENO=:#siteno and l.LOCATIONNO=:#locationno and 
s.SITENO=l.SITENO?outputType=SelectOne"/>
<to uri="log://sql-output?ShowAll=true&amp;multiline=true"/>

The siteno and locationno are in a header.
Both steps run perfectly good in a firebird database and produce following logs:
[org.apache.camel.component.sql.DefaultSqlPrepareStatementStrategy] Prepared 
query: select s.SITENAME, l.LOCATIONNAME from VGMSITE s, VGMLOCATION l where 
l.SITENO=? and l.LOCATIONNO=? and s.SITENO=l.SITENO
[org.apache.camel.component.sql.DefaultSqlPrepareStatementStrategy] Setting 
parameter #1 with value: 1
[org.apache.camel.component.sql.DefaultSqlPrepareStatementStrategy] Setting 
parameter #2 with value: 1
[org.apache.camel.component.sql.SqlProducer] Got result list from query: 
org.apache.commons.dbcp.DelegatingResultSet@7270bbb6, outputType=SelectOne
[sql-output] Exchange[
, Id: ID-LPT-030915-001-59524-1466882394560-0-25
, ExchangePattern: InOut
, Properties: {CamelCreatedTimestamp=Sat Jun 25 21:20:18 CEST 2016, 
CamelFilterMatched=true, 
CamelMessageHistory=[DefaultMessageHistory[routeId=dpwa.solas.vgm.location.route,
 node=setHeader16], 
DefaultMessageHistory[routeId=dpwa.solas.vgm.location.route, node=log17], 
DefaultMessageHistory[routeId=dpwa.solas.vgm.location.route, node=choice7], 
DefaultMessageHistory[routeId=dpwa.solas.vgm.location.route, node=to30], 
DefaultMessageHistory[routeId=dpwa.solas.vgm.location.route, node=to31]], 
CamelToEndpoint=log://sql-output?ShowAll=true&multiline=true}
, Headers: {accept=application/json, text/javascript, */*; q=0.01, 
accept-encoding=gzip, deflate, sdch, 
accept-language=en-GB,en;q=0.8,en-US;q=0.6,nl;q=0.4, 
breadcrumbId=ID-LPT-030915-001-59524-1466882394560-0-23, 
cache-control=max-age=0, CamelCreatedTimestamp=Sat Jun 25 21:20:18 CEST 2016, 
CamelHttpMethod=GET, CamelHttpPath=, CamelHttpQuery=siteno=1&locationno=1, 
CamelHttpServletRequest=org.apache.catalina.connector.RequestFacade@bd60042, 
CamelHttpServletResponse=org.apache.catalina.connector.ResponseFacade@44782f90, 
CamelHttpUri=/TrisESB-dpwa-dvl-vgm%23%232016.06.14/web/camel/dpwa/vgm/location.ajax,
 
CamelHttpUrl=http://lpt-030915-001:8080/TrisESB-dpwa-dvl-vgm%23%232016.06.14/web/camel/dpwa/vgm/location.ajax,
 CamelServletContextPath=/dpwa/vgm/location.ajax, CamelSqlRowCount=1, 
connection=keep-alive, Content-Type=null, 
cookie=JSESSIONID=C54F4B1B756A13257236FF39067522EB, host=lpt-030915-001:8080, 
locationno=1, 
referer=http://lpt-030915-001:8080/TrisESB-dpwa-dvl-vgm%23%232016.06.14/web/vgmweigher.jsp?siteno=1&locationno=1,
 siteno=1, user-agent=Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 
(KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36, 
x-requested-with=XMLHttpRequest}
, BodyType: org.springframework.util.LinkedCaseInsensitiveMap
, Body: {SITENAME=AGW, LOCATIONNAME=yard}
, Out: null:
]

When I run exactly the same query in a sql driver db (with 
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver and 
url=jdbc:sqlserver://lpt-030915-001;databaseName=dpwa-solas-vgm;integratedSecurity=true),
 I get an error The multi-part identifier "l.SITENO" could not be bound.
The log don't show the "Setting parameter" lines but I don't know why.

The logs for sql server:
[org.apache.camel.component.sql.DefaultSqlPrepareStatementStrategy] Prepared 
query: select s.SITENAME, l.LOCATIONNAME from VGMSITE s, VGMLOCATION l where 
l.SITENO=? and l.LOCATIONNO=? and s.SITENO=l.SITENO
[org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML 
bean definitions from class path resource 
[org/springframework/jdbc/support/sql-error-codes.xml]
[org.springframework.jdbc.support.SQLErrorCodesFactory] SQLErrorCodes loaded: 
[DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase, 
Hana]
[org.apache.camel.processor.DefaultErrorHandler] Failed delivery for 
(MessageId: ID-LPT-030915-001-59810-1466882533439-0-16 on ExchangeId: 
ID-LPT-030915-001-59810-1466882533439-0-18). Exhausted after delivery attempt: 
1 caught: org.springframework.jdbc.UncategorizedSQLException: 
PreparedStatementCallback; uncategorized SQLException for SQL []; SQL state 
[null]; error code [0]; com.microsoft.sqlserver.jdbc.SQLServerException: The 
multi-part identifier "l.SITENO" could not be bound.; nested exception is 
com.microsoft.sqlserver.jdbc.SQLServerException: 
com.microsoft.sqlserver.jdbc.SQLServerException: The multi-part identifier 
"l.SITENO" could not be bound.

When I do a sql server query with only one table, everything works just fine.

Has anyone experience similar problem and found a solution for this (except 
using a db view)?
--
Kind regards,
Ronny Aerts<mailto:ronny.ae...@intris.be> - Intris nv - Wapenstilstandlaan 47, 
2600 Berchem, Belgium
R&D Integration Architect
Prince II<http://en.wikipedia.org/wiki/PRINCE2> certified - 
ITIL<http://en.wikipedia.org/wiki/Information_Technology_Infrastructure_Library>
 certified
Tel: +32-3-326.50.75

Intris nv
Wapenstilstandlaan 47
B-2600 Berchem  Tel.  +32 3 326 50 75
Fax  +32 3 326 42 23
www.intris.be<http://www.intris.be/>    
[http://www.intris.be/mail/AEO_Sticker_108pxRGB.jpg] <http://www.intris.be>

DISCLAIMER
This is an e-mail from Intris. The information contained in this communication 
is intended solely for use by the individual or entity to whom it is addressed.
Use of this communication by others is prohibited. If the e-mail message was 
sent to you by mistake, please notify 
supp...@intris.be<mailto:supp...@intris.be>, destroy it without reading, using, 
copying or disclosing its contents to any other person.
We accept no liability for damage related to data and/or documents which are 
communicated by electronic mail.

Reply via email to