span8
span4
虽然FME可以很容易地将SQL查询发送到MS SQL Server,但是您可能已经有了一个查询或SQL Server中定义的更复杂的函数存储过程。FME可以使用SQLExecutor或SQLCreator转换器执行存储过程,并将属性或参数值作为过程的参数提供。
改变程序[dbo]。[MyProc] -- Add the parameters for the stored procedure here @ADDRESSID int, @COUNTY int
从dbo中选择*。ADDRESS_POINTS where ADDRESSID = @ADDRESSID and COUNTY = @COUNTY
注意参数的顺序,这样你就可以按照正确的顺序提供FME了。FME将提供一个ADDRESSID和一个县。
注:我们只有上面显示存储过程的部分 - 完整的程序附后(MyProc.sql)。
EXEC dbo.MyProc '@Value(ADDRESSID)', '@值(县)'
为了提供和由逗号分隔的存储过程的参数。的@值()语法告诉FME发送该属性的值作为参数进行查询。
5。该查询返回的记录会的出结果口和在示例发送到数据查验(展示台)。不要忘记点击“选择无几何体”按钮,看到这些没有几何特征。
注意:输出要素的属性不会被暴露 - 这意味着他们将在功能,但在工作台上无法访问。您可以使用它们暴露AttributeExposer变压器明确命名要查看或SQLExecutor变压器揭露他们的属性。
EXEC dbo.MyProc '$(ADDRESSID)', '$(县)'
再次,为了提供用于存储过程的参数和由逗号分隔。的$()语法告诉FME已公布的参数的值发送到程序。
经测试,在FME工作台2018.0
EXEC [DBO]。[GetAPIModulesFromToken] @TOKEN = N '$(令牌)'它的工作,也许需要条修改或有我误读了目标?
EXEC dbo.MyProc '$(ADDRESSID)', '$(县)'和
EXEC dbo.MyProc $(ADDRESSID), '$(县)'都工作。
我是新来的FME,现在在试用许可证运行,但有数据库的深度。我能得到这个例子中工作得很好,但是,即使它是写清楚和有用的,它并不完全适合我的账单。我需要访问一个系统存储过程返回单个值作为输出参数。在T-SQL,它将被表述为:
DECLARE @result INT
EXEC @result = sp_getapplock @Resource = '资源名称',
@LockMode = '独占模式',
@LockOwner = '交易',
@LockTimeout = '0',
@DbPrincipal = '公共';
最后,我想有FME采取取决于@result值两条路径之一,但首先第一件事情,我如何才能说价值?
TIA
你好@pakicetus,我们可能要在这一个连接到看到在您的环境这个工作(以T-SQL)。当然,我没有足够的在这里继续下去,我们可能它移植到FME。我怀疑这个工作的。
如何申请一票与安全支持(亚搏在线www.亚搏在线safe.com/support报告问题),解决了我在立案(SteveatSafe),包括这篇文章的链接。亚搏在线希望这对你的作品。
©2019安全亚搏在线软件公司法律