如果你想一次处理一行,普通的数据库阅读器就可以了;只需将所有步骤的摘要下的数据类型设置为 XML。将频道编写器的目的地设置为无处并运行一次以查看它在仪表板中的作用。您可以将其作为示例复制并粘贴到您的消息模板中,以便映射变量。
如果您想在 Transformer 步骤中一次处理整个结果,我发现创建自定义阅读器并在我的 Microsoft SQL 查询末尾使用“FOR XML RAW, ELEMENTS”会更容易。就像是:
//build connection
var dbConn = DatabaseConnectionFactory.createDatabaseConnection('com.microsoft.sqlserver.jdbc.SQLServerDriver','jdbc:sqlserver://servername:1433;databaseName=dbname;integratedSecurity=true;','',''); //this uses the MS JDBC driver and auth dll
//query results with XML output from server 'FOR XML' statement at end
var result = dbConn.executeCachedQuery("SELECT col1 AS FirstColumn, col2 AS SecondColumn FROM [dbname].[dbo].[table1] WHERE [processed] = 'False' FOR XML RAW, ELEMENTS");
//Make sure we are at the top of results
result.beforeFirst();
//wrap XML. Namespace etc. not required
XMLresult = '<message>';
//XML broke up across several rows in one column. Re-combine
while (result.next()) {
XMLresult += result.getString(1);
}
XMLresult += '</message>';
dbConn.close();
return XMLresult;