【问题标题】:Talend - Read a SQL from .txt and pass variables to itTalend - 从 .txt 读取 SQL 并将变量传递给它
【发布时间】:2017-07-21 20:09:57
【问题描述】:

我需要读取一个 Excel 文件并为 Excel 的每一行执行不同的 SQL 查询 (Oracle),具体取决于表的列(“tipo”)具有的值。此外,我需要将变量传递给来自同一 excel 的其他列的 SQL 查询。

我已经用 tjava 完成了这项工作,创建了一个生成 de 查询的字符串.. 像这样(简化):

String var1 = input_row.var1;
String var2 = input_row.var2;
String sql_query = ""

if (tipo.toString().equals(String.valueOf("Option1"))) {
query_ev = "select " + var1 + " as variable1, " + var2 + " as var 2 from dual";}

if (tipo.toString().equals(String.valueOf("Option2"))) {
query_ev = "select " + var1+ " from dual";}

context.sql = sql_query;

尽管如此,我的“问题”是我的查询很长,而且这种方法只允许我将它们放在 tjava 中而没有换行符,因此很难编辑它们,因为它们仍然是“单行查询”在 tjava 中。

有没有办法完成相同的操作,但要格式化查询? 例如,对于 Option1 有这个

select " + var1 + " as variable1, " + var2 + " as var 2 
from dual
where 
 ...

我很感激任何线索。

【问题讨论】:

  • 您是在控制台上打印出来复制并在某处运行吗?如果是这样,您可以在要移至下一行的位置添加 \n,从而更好地格式化。

标签: sql talend


【解决方案1】:

试试这个:

query_ev = "select "
" + var1 + " as variable1, " + var2 + " as var 2 "+
from dual";

我现在没有 Java 来验证,但我认为这种方法可以帮助格式化。只需检查您是否有足够的空间 - 不要这样做

"as var 2"+"from dual"

这会导致类似 SQL

"as var 2from dual"

【讨论】:

  • 谢谢,这是一个好方法。但是,您能想象任何从 .t​​xt 文件中读取 SQL 的方法吗?那将是理想的,但对我来说问题是我需要在 tjava 中提供 SQL 的变量。
  • 这是可能的,但取决于文本文件的格式。您可能想打开另一个问题,特别是问这个问题。
猜你喜欢
  • 2014-01-12
  • 2011-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-11
  • 2019-08-24
相关资源
最近更新 更多