gpt4 book ai didi

java - 需要在 camel Talend 中动态创建 SQL 语句

转载 作者:行者123 更新时间:2023-11-29 08:40:50 32 4
gpt4 key购买 nike

我正在使用使用 camel 的 Talend ESB。我的要求是我需要批量插入到一个表中,并且必须为不同类型的输入动态创建查询。

如果我创建一个上下文说 extVar 并将其默认为“插入 table_foo (foo, bar) 值 (:#foo, :#bar)”然后使用带有以下代码的 cMessagingEndpoint 组件"sql"+context.extVar+"?batch=true&dataSource=mysql"它工作正常。

在 Talend 中,我能够访问 cProcessor 中的 context.extVar,因此我尝试从那里动态加载查询,但我做不到。

因为我使用的是命名参数,所以我假设我既不能使用正文进行查询,也不能在 cMessageEndPoint 的 sql 语句中获取属性/ header 值。

有什么方法可以将查询动态填充到 cMessageEndPoint 的 sql 语句中。

最佳答案

我能够解决我的问题。感谢this answer .我的目标是使用 cRecipientList 进行动态批量插入查询,我能够实现它。在从 cProcessor 动态加载 cRecipientList 的表达式时,我还能够读取上下文变量并在其内部使用。

enter image description here

更新:我刚刚发现您还可以使用 .toD(可从 camel 版本 2.16 获得)在查询中使用简单的表达式语言。例如:你可以写,

.toD("sql:${property.query}?dataSource=ds_dwh_d&batch=true")

关于java - 需要在 camel Talend 中动态创建 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40370446/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com