为了运行石英调度的SQL报告,我正在使用camel-SQL组件。我的SQL是一个冗长的查询,我更喜欢格式化它,使它跨越许多行(确切地说,是92行),尽管它可以格式化为一行非常长的文本。
我的首选是将这个脚本放入一个外部文件中,然后运行它。或者,我可以将它放入一个属性文件(并不是我的首选),但是我尝试过了,即使在每一行的末尾添加了反斜杠“\”之后,由于某种原因,它仍然会导致异常。暂时忽略这个问题,如果脚本驻留在外部文件中,我如何使用camel SQL运行这个脚本?看起来应该很容易,但我不知道该怎么做。谢谢你的指点。
发布于 2014-07-11 18:22:33
您可以使用通过JDBC访问数据库的jdbc组件,其中在消息体中发送SQL查询和操作。
示例:
from("direct:start")
.to("jdbc:myDataSource?useHeadersAsParameters=true")
.log("result = ${body}");经以下测试:
final ProducerTemplate template = context.createProducerTemplate();
template.sendBody("direct:start", "select p.ID, p.PROJECT from projects p");您可以从文件中读取SQL语句,而不是将静态字符串传递给主体:
final String sql = FileUtils.readFileToString(new File("src/main/resources/sql/select.sql"));
template.sendBody("direct:start", sql);https://stackoverflow.com/questions/24702670
复制相似问题