使用包含日期范围的 sql 的 Camel 端点 URI

Camel Endpoint URI using sql containing date range

我将包含 sql 组件的 URI 的端点指定为:

<endpoint id="select-myS" uri="sql:select myField from myView where ChangeDate between :#startDate and :#endDate"/>

我将开始日期和结束日期设置为 headers。 在那种情况下,我会收到以下错误消息: com.microsoft.sqlserver.jdbc.SQLServerException: 关键字 'between'

附近的语法不正确

如果我尽量避免介于两者之间,并添加如下两个子句: ChangeDate >= :#startDate 和 ChangeDate <= :#endDate,我收到其他错误: 与元素类型 "null" 关联的属性 "uri" 的值不得包含“<”字符

(我也试过 :#endDate>=ChangeDate ,它也不起作用!:-( ).

能否请您就此提出建议?

谢谢!

当您使用 XML 来描述您的路线和终点时,您必须转义您的 '>' 和 '<' 字符,例如:

> should be escaped as &gt; (aka greather than)
< should be escaped as &lt; (aka lower than)

给出:

<endpoint uri="sql:... where ChangeDate &gt;= :#startDate and ChangeDate &lt;= :#endDate">