西班牙
斯潘4
尽管fme可以很容易地将sql查询发送到ms sql server,但是您可能已经在sqlserver中定义了一个查询或更复杂的函数作为存储过程。fme可以使用sqlexecutor或sqlcreator转换器执行存储过程,并提供属性或参数值作为过程的参数。
alter procedure[dbo].[myproc]--在此处添加存储过程的参数@addressid int,@country int
从dbo.address\u点中选择*addressid=@addressid和county=@county
请注意参数的顺序,以便您可以按照正确的顺序为它们提供fme。FME将提供ADDRESSID以及县是的。
注意:上面只显示了存储过程的一部分—完整的过程是附加的(MyProc.sql)。
exec dbo。MyProc '@Value(ADDRESSID)','@Value(COUNTY)'
存储过程的参数按顺序提供,并用逗号分隔。这个@ value ()语法告诉FME将该属性的值作为要查询的参数发送。
5.查询返回的记录将从结果在本例中,端口和被发送到数据检查器(Visualizer)。不要忘记点击“选择无几何”按钮来查看这些无几何特征。
注意:输出特性的属性将不会被公开—这意味着它们将在特性上,但是在工作台中不能访问。可以使用AttributeExposertransformer,以显式地命名希望在SQLExecutor transformer中查看或公开的属性。
exec dbo。MyProc '$(ADDRESSID)','$(COUNTY)'
同样,存储过程的参数也是按顺序提供的,并用逗号分隔。这个$ ()语法告诉FME将发布的参数的值发送给过程。
在FME工作台测试2018.0
EXEC [dbo] [GetAPIModulesFromToken]。 @TOKEN = N'$(token)'它起作用了,也许文章需要修改,或者我误解了目标?
exec dbo。MyProc '$(ADDRESSID)','$(COUNTY)'和
exec dbo。MyProc $(ADDRESSID),'$(COUNTY)'这两个工作。
我是一个新的FME,运行在一个试用许可证,现在,但有数据库的深度。我能够让这个例子很好地工作,但是,尽管它写得很清楚而且很有用,它还是不太符合我的要求。我需要访问一个将单个值作为输出参数返回的系统存储过程。在T-SQL中,它的表达式为:
声明@result int
EXEC @result = sp_getapplock @Resource = 'Resourcename',
@LockMode =“独家”,
@LockOwner =“交易”,
@LockTimeout = ' 0 ',
@DbPrincipal =“公共”;
最后,我想让FME根据@result中的值选择两条路径中的一条,但首先要解决的问题是,如何获得所述的值?
蒂雅
?2019安全亚搏在线软件公司|合法的