Talend:tExtractRegexFields 和 globalMap

Talend : tExtractRegexFields and globalMap

我的工作就是这样组成的:

tRest >> tExtractJSonFields >> ttExtractRegexFields > (row3) > tMSSqlRow

我正在使用带有 3 个输出变量的 tExtractRegexFields 组件。 下一个组件是 tMSSqlRow。 我想在我的 SQL 查询中使用 tExtractRegexFields 的输出作为参数。

我的 SQL 查询是这样的: ; 与 nums AS (SELECT 1 作为页面 联合所有 SELECT PAGE + 1 AS 值 从数字 WHERE nums.PAGE < "+(整数)globalMap.get("row3.lastpage")") 插入 flight.Calendar_Page (DT_CAL, NUM_PAGE) SELECT '2016-01-01', 页 从数字 选项(最大递归 32767);“

"row3.lastpage" 是 tExtractRegexFields 的输出变量。 这个总是包含 NULL 值。

我不明白为什么 globalMap.get("row3.lastpage") 为空。有人知道如何使用 tExtractRegexFields 的输出吗?

谢谢大家

不要在 tMSSqlRow 的 SQL 查询中使用 globalMap.get("row3.lastpage"),只需将 row3.lastpage 与 SQL 字符串连接即可。 row3.lastpage 不是字符串,但 row3 是 Talend 生成的代码中的 Java class,lastpage 是其字段之一。该字段包含您要注入 SQL 语句的数据。

globalMap.get("row3.lastpage") 将始终由 null.

您的查询应该是这样的:

WITH nums AS (SELECT 1 AS PAGE UNION ALL SELECT PAGE + 1 AS value FROM nums WHERE nums.PAGE < " + row3.lastpage + ") INSERT INTO flight.Calendar_Page (DT_CAL, NUM_PAGE) SELECT '2016-01-01', PAGE FROM nums option (maxrecursion 32767);