问题描述
我有一个定义为的函数: ``其中XXXXX是我的架构YYYYY是我的包裹。
PROCEDURE "XXXXX"."YYYYY.SPATIAL::SP_GA_PT_PATH_DISTANCE" (IN PID NVarChar(36))
LANGUAGE SQLScript
SQL SECURITY INVOKER
--DEFAULT SCHEMA <default_schema_name>
AS
BEGIN
我想调用一个函数并将结果分配给变量,我尝试了以下两种方法:
intIntersect := XXXXX.YYYYY.SPATIAL::GA_INTERSECT (32.925148,-117.020051,32.924672,-117.019454,32.924488,-117.020322,32.924849,-117.019759);
SELECT XXXXX.YYYYY.SPATIAL::GA_INTERSECT (32.925148,-117.019759) INTO intIntersect FROM DUMMY;
我对此有不同的排列方式,但没有用。
有什么想法吗?
谢谢。
解决方法
在代码示例中,您所描述的FUNCTION
实际上是PROCEDURE
。
这些方法的区别在于您可以使用任何一种方法。
过程需要通过CALL
语句调用。
函数可以在所有可以使用表达式(即{{1的投影列表)使用的地方用作标量函数。 }}语句),或者对于表类型的函数,例如处于SELECT
条件下的表。
移交给该过程的参数似乎是数据项列表。 传递参数“列表”的一般方法是使用表类型参数:
WHERE