在Camel sql组件中使用标头值作为表名

时间:2014-07-15 21:23:48

标签: sql apache-camel

我想使用标头值来设置sql组件中db表的名称。是否有捷径可寻? .to(“sql:drop table $ {in.header.tablename}”) 抛出无效字符异常

2 个答案:

答案 0 :(得分:1)

如果要动态路由邮件,可以使用recipient-list。路线可能是

from("direct:a").recipientList(simple("sql:drop table ${in.header.tablename}")).

答案 1 :(得分:0)

使用sql组件而不是jdbc的一点是,前者允许您使用消息有效负载作为查询的参数。

对于您想要的,只需使用命名参数来访问查询中的标头。 sql component docs中有一个示例:

from("direct:projects")
    .setHeader("lic", constant("ASF"))
    .setHeader("min", constant(123))
    .to("sql:select * from projects where license = :#lic and id > :#min order by id")

希望它有所帮助。