在 Talend 中执行 SQL 查询

Talend 的 tDBRow 组件帮助我们编写或执行 SQL 查询。我们可以使用此 Talend tDBRow 来执行 DML 操作或执行任何不返回结果的 SQL 查询。

为了演示如何在 Talend 中执行 DML 语句或查询,我们使用了两个表。第一个是引用表。

Employee Table

我们使用上面的表,并在下面的表中编写了 merge 语句。在 Merge 语句中,我们执行了 Insert、Update 和 Delete 操作。

Merge Table

Talend 执行 SQL 查询示例

我们使用 tDBConnection 连接到 SQL Server。接下来,将 tDBRow 从调色板拖放到 Job 设计器。

在 tDBRow 组件选项卡中,您可以看到可用选项。这与 tDBInput 相同,但我们必须使用 Query 窗口来编写我们自己的 SQL 查询。

Add tDBRow to the Workflow to Execute SQL Queries in Talend

对于连接,我们使用了在 Talend tDBConnections 组件中创建的现有连接。

Configure tDBConnection

对于 tDBRow_1,我们编写了 Merge Statement 来执行 DML 操作。我建议您参考 SQL Merge 文章来理解该查询的所有内容。我们使用了相同的表、相同的查询,并对数据进行了一些更改,以便于理解。

tDBRow Configuration to Execute SQL Queries in Talend
"MERGE [Merge_Table] AS mrg
USING (SELECT * FROM [Employee]) AS emp
ON mrg.EmpID = emp.EmpID
WHEN MATCHED AND mrg.[YearlyIncome] <= 50000 THEN DELETE
WHEN MATCHED AND mrg.[YearlyIncome] >= 80000 THEN 
  UPDATE SET mrg.[YearlyIncome] = mrg.[YearlyIncome] + 35000
WHEN NOT MATCHED THEN
INSERT ([FirstName], [LastName], [Education]
      ,[Occupation]
      ,[YearlyIncome]
      ,[Sales]
      ,[HireDate])
VALUES(emp.[FirstName], emp.[LastName], emp.[Education]
      ,emp.[Occupation]
      ,emp.[YearlyIncome]
      ,emp.[Sales]
      ,emp.[HireDate]);"

让我们在 Talend 作业中运行此 Execute DML Queries。

Run the Job to Execute SQL Queries in Talend

Management Studio 中,您可以看到结果。

Result Table