span8
span4
你好
我是FME世界的新手,有一个问题可能对任何有FME经验的人都有一个超级明显的答案。SQL对我来说也很陌生。
我有一个SQLCreator,它针对Oracle空间对象数据库运行以下SQL脚本。
我知道我需要在“属性暴露框”中输入一些东西,但是我无论如何也弄不清楚它需要是什么。
FME_SQL_DELIMITER /声明GLASSHOUSEAR编号;从GLASSHOUSE_AR开始选择count(*)到GLASSHOUSEAR;结束;/申报铁路车站号码;从RAILWAYSTATION_PT开始选择count(*)到RAILWAYSTATIONPT;结束;/申报海运号码;开始选择count(*)从MARINEWATER_AR到MARINEWATERAR;结束;/
当我在SQL脚本中使用以下语句时,'attribute to expose'中所需要的只是'count(*)',它会按预期抛出计数。
从RAILWAYSTATION_PT中选择count (*);
谁能告诉我正确的方向,这样我就可以让SQL creator输出正确的东西。
我想让它给我所有三个的计数:
GLASSHOUSE_AR
RAILWAYSTATION_PT
MARINEWATER_AR
当我以工作台的当前状态运行它时,它会很好地连接到数据库,运行SQL,然后什么也不返回。
属性暴露,我尝试了迄今为止没有运气:
count (*) from RAILWAYSTATION_PT RAILWAYSTATION_PT count (*) INTO RAILWAYSTATION_PT count (*) RAILWAYSTATION_PT GLASSHOUSEAR
我还尝试了“从SQL查询填充”,但返回什么都没有。
谢谢你的帮助!
谢谢你的回复:)
最后我还是去了
FME_SQL_DELIMITER;从GLASSHOUSE_AR中选择count(*)作为GLASSHOUSEAR;从RAILWAYSTATION_PT中选择count(*)作为RAILWAYSTATIONPT;从MARINEWATER_AR中选择count(*)作为MARINEWATERAR;
然后是露在外面的玻璃房、火车站、海水厂,现在一切都如预期的一样。
在Oracle 12。c及以上版本中,我们可以使用一个动态函数来做同样的事情,这提供了一个更通用的解决方案,通过这种方式,我们可以使用pl/sql来获得结果
与
函数get_count(varchar2中的i_tab)返回的数字是
i_count整数;
开始
立即执行'选择计数(*)从' || i_tab到i_count;
返回i_count;
结束;
选择get_count('GLASSHOUSEAR')作为GLASSHOUSE_AR
, get_count('RAILWAYSTATIONPT')作为RAILWAYSTATION_PT
, get_count('MARINEWATERAR')作为MARINEWATER_AR
FROMdual
此SQL将为您提供一个具有所需属性的特性
选择(从GLASSHOUSEAR中选择count(*))作为GLASSHOUSE_AR
,(从RAILWAYSTATIONPT中选择count(*))作为RAILWAYSTATION_PT
,(从MARINEWATERAR中选择count(*))作为MARINEWATER_AR
从双
只需使用union将所有三个查询放在一起,并公开属性NumberOfRecords和TableName
选择count(*)作为NumberOfRecords, 'GLASSHOUSEAR'作为表格名来自GLASSHOUSE_AR
联盟
选择count(*)作为NumberOfRecords, 'RAILWAYSTATIONPT'作为TableName from RAILWAYSTATION_PT
联盟
选择count(*)作为NumberOfRecords, 'MARINEWATERAR'作为TableName from MARINEWATER_AR;
不幸的是,您不能通过这种方式从PL/SQL块获取数据。
实现这一点的惟一方法是使用3个SQLCreator转换器和SQL语句:
从GLASSHOUSE_AR中选择count(*)作为GLASSHOUSEAR;
从RAILWAYSTATION_PT中选择count(*)作为RAILWAYSTATIONPT;
从MARINEWATER_AR中选择count(*)作为MARINEWATERAR;
然后使用FeatureMerger(在1 = 1上合并)在一条记录中获得所有3个记录(一个作为请求者,另两个作为提供者)。
这应该会给你一个特征和3个计数。
©2019安全亚搏在线软件公司法律