我有一个视图作为tOracleInput和另一个输出组件(为简单起见,让tOutputDelimited为day)。
现在我想在tOracleInput的某些字段中添加一个where子句来过滤数据。我们的想法是在jar执行期间将这些值作为参数传递以过滤输出。
此外,输出的文件名必须来自jar执行传递的第一个参数。
任何人都可以告诉我如何实现1& 2。
提前致谢
答案 0 :(得分:3)
在您的工作中,创建2 context variables个字符串,例如SELECT parentid
FROM table_name
WHERE (metadatakey, metadatavalue) IN (
('Brand', 'BMW'),
('Wheels', '17'),
('Model', 'B2017')
)
GROUP BY parentid
HAVING COUNT(DISTINCT metadatakey) = 3; --number of equality filter
--If you don't have duplicate (metadatakey, metadatavalue) for each
-- parentid then use COUNT(*) instead
和out_filename
。
在where_value
组件的查询框中,您可以像这样连接where值:
tOracleInput
在"select * from my_view where field" + context.where_value
组件的文件名框中,您可以像这样使用上下文变量:
tOutputDelimited
现在你可以像这样在行命令中传递它们:
"/home/user/" + context.out_filename