我需要从Tibco BW JDBC调色板连接到远程MS SQL服务器存储过程,以检索我们不知道结果集列名的结果集。
在我的本地环境中,我曾经模拟了返回预期结果集的过程但是使用了虚拟列名。因此,在解析unresolvedResultSet时,如果结果集中的列名不是输出中定义的列名,则抛出错误。
如果我使用'结果集作为架构'如果列名不同,则在解析结果集时,它也会抛出错误。
有没有办法在Tibco BW中解决这个问题?
先谢谢。
答案 0 :(得分:0)
对我来说,听起来像将过程输出UnresolvedResultsets转换为列/值架构可以帮助解决您的问题。您可以使用标准的“转换XML”活动将$ JDBC-Procedure / resultSet / UnresolvedResultsets转换为列/值架构
Step1 创建包含以下内容的XSLT文件:
// with string format
var columnHeaders1 = string.Format($"|{0,-30}|{1,-4}|{2,-15}|{3,-30}|{4,-30}|{5,-30}|{6,-30}", "ColumnA", "ColumnB", "ColumnC", "ColumnD", "ColumnE", "ColumnF", "ColumnG");
// with string interpolation
var columnHeaders2 = $"|{"ColumnA",-30}|{"ColumnB",-4}|{"ColumnC",-15}|{"ColumnD",-30}|{"ColumnE",-30}|{"ColumnF",-30}|{"ColumnG",-30}";
第2步添加“转换XML”活动,并将步骤1中创建的xslt文件指定为样式表
Step3 将$ JDBC-Procedure / resultSet / UnresolvedResultsets映射到转换XML输入
此处链接指向transform XML tutorial
答案 1 :(得分:0)
您可以使用“Any Element”尝试ParsigXML:
这是我解析的输出:
希望它适合你。