[英]how to get row count from Tibco Direct SQL or JDBC Query activity
在我的Tibco流程中,我具有仅当查询从Tibco“直接SQL”或Tibco“ JDBC查询”活动返回的记录少于1000条时才映射SQL查询输出的逻辑。
现在我只运行两次相同的查询:
Select count(*) AS Count
FROM my_table
WHERE my_table.foo = 'bar'
如果第一个查询结果小于1000,我将调用同一查询以获取所有行
Select my_table.*
FROM my_table
WHERE my_table.foo = 'bar'
该查询非常繁琐,出于性能目的,我只希望运行一次。
我从SQL端的SELECT语句后需要行计数中找到了解决方案:最佳的SQL方法是什么?
我可以像这样使用查询:
SELECT my_table.*, count(*) OVER() AS Count
FROM my_table
WHERE my_table.foo = 'bar'
问题在于,将count(*)添加到查询还会影响性能。
我可以将查询结果映射到“映射数据”活动,然后使用count($ Map-Data / pfx:my_element /),但我希望避免出于性能目的而进行其他不必要的映射。
Tibco“直接SQL”和Tibco“ JDBC查询”正在使用Oracle(ojdbc7.jar)和DB2(jt400.jar)驱动程序。
有什么方法可以从tibco端获取查询输出行数,而无需在查询输出中增加计数?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.