Function 从HANA过程调用标量函数

Function 从HANA过程调用标量函数,function,procedure,hana,scalar,Function,Procedure,Hana,Scalar,​我有一个函数定义为: ​其中XXXXX是我的模式YYYY是我的包 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 ​我玩过不同的排列,但都不管用 有什么

​我有一个函数定义为: ​其中XXXXX是我的模式YYYY是我的包

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
​我玩过不同的排列,但都不管用

有什么想法吗


谢谢。

在您的代码示例中,您所描述的
函数实际上是一个
过程

它们的不同之处在于您可以调用它们中的任何一个。 过程需要通过
CALL
语句调用

函数可以在所有可以使用表达式的地方(即
SELECT
-语句的投影列表)用作标量函数,或者对于表类型的函数,如
where
条件中的表

移交给程序的参数似乎是一个数据项列表。 传递参数“列表”的一般方法是使用表格类型参数:

CREATE FUNCTION "XXXXX"."YYYYY.SPATIAL::SP_GA_PT_PATH_DISTANCE" 
              (IN_PIDS TABLE (PID NVARCHAR(36)) )
       RETURNS TABLE (DISTANCES DECIMAL)
AS
BEGIN

   SELECT * FROM :IN_PIDS;
...
CREATE FUNCTION "XXXXX"."YYYYY.SPATIAL::SP_GA_PT_PATH_DISTANCE" 
              (IN_PIDS TABLE (PID NVARCHAR(36)) )
       RETURNS TABLE (DISTANCES DECIMAL)
AS
BEGIN

   SELECT * FROM :IN_PIDS;
...