在 Talend 中获取 TMSSqlRow 的输出
Get output of TMSSqlRow in Talend
我想使用 TMSSqlRow 获取受影响/删除/更新的行数。
工作内容如下:
文件使用包含很多 sql 语句,如 DELETE ... INSERT ... UPDATE ...
每行由“;”分隔。=12=]
但是现在,我想获得每条语句的结果(x 行已更新,如结果显示在 management studio 中)。
当我转到 tmssql 行的 "advanced settings" 选项卡时,我 select“传播查询的记录集”和 select 我之前创建的列(对象类型) .
执行时,我有这个错误:
The executeQuery method must return a result set.
那么,如何获取每个语句的结果并将其(通过示例)插入到数据库/文件中?
选项 "Propagate QUERY's recordset" 必须与 tParseRecordSet 结合使用才能从 returned 记录集中提取信息。但是,这还不够:您必须显式地将查询写入 return 记录数 updated/deleted。
这是我所做的:
我的 tJDBCRow(与 tMSSqlRow 相同)查询如下所示(请注意我必须在更新查询之前添加 'set nocount on',并在更新查询之后添加 'select @@rowcount')
tParseRecordSet 从列结果集中检索行数(nbLines 是我的行数的别名)
如果您需要受影响的行数,更好的选择是使用可以更新、插入或删除行的 tMSSqlOutput 组件。执行后,组件提供全局变量以显示操作影响了多少行。
((Integer)globalMap.get("tMSSqlOutput_1_NB_LINE"))
((Integer)globalMap.get("tMSSqlOutput_1_NB_LINE_UPDATED"))
((Integer)globalMap.get("tMSSqlOutput_1_NB_LINE_INSERTED"))
((Integer)globalMap.get("tMSSqlOutput_1_NB_LINE_DELETED"))
我想使用 TMSSqlRow 获取受影响/删除/更新的行数。
工作内容如下:
文件使用包含很多 sql 语句,如 DELETE ... INSERT ... UPDATE ... 每行由“;”分隔。=12=]
但是现在,我想获得每条语句的结果(x 行已更新,如结果显示在 management studio 中)。
当我转到 tmssql 行的 "advanced settings" 选项卡时,我 select“传播查询的记录集”和 select 我之前创建的列(对象类型) .
执行时,我有这个错误:
The executeQuery method must return a result set.
那么,如何获取每个语句的结果并将其(通过示例)插入到数据库/文件中?
选项 "Propagate QUERY's recordset" 必须与 tParseRecordSet 结合使用才能从 returned 记录集中提取信息。但是,这还不够:您必须显式地将查询写入 return 记录数 updated/deleted。
这是我所做的:
我的 tJDBCRow(与 tMSSqlRow 相同)查询如下所示(请注意我必须在更新查询之前添加 'set nocount on',并在更新查询之后添加 'select @@rowcount')
tParseRecordSet 从列结果集中检索行数(nbLines 是我的行数的别名)
如果您需要受影响的行数,更好的选择是使用可以更新、插入或删除行的 tMSSqlOutput 组件。执行后,组件提供全局变量以显示操作影响了多少行。
((Integer)globalMap.get("tMSSqlOutput_1_NB_LINE"))
((Integer)globalMap.get("tMSSqlOutput_1_NB_LINE_UPDATED"))
((Integer)globalMap.get("tMSSqlOutput_1_NB_LINE_INSERTED"))
((Integer)globalMap.get("tMSSqlOutput_1_NB_LINE_DELETED"))