SAP HANA空间函数

SAP HANA空间函数,sap,hana,Sap,Hana,我想在SAP HANA DB中创建用于计算两点之间距离的函数 create function "kostya"."calc_distance" (in a ST_Point, in b ST_Point) returns dist DOUBLE AS BEGIN dist = a.ST_Distance(b); END 当我尝试执行此代码时,出现错误: feature not supported: Unsupported parameter type:ST_POINT: line 2

我想在SAP HANA DB中创建用于计算两点之间距离的函数

create function "kostya"."calc_distance" (in a ST_Point, in b ST_Point)
returns dist DOUBLE
AS
BEGIN
    dist = a.ST_Distance(b);
END
当我尝试执行此代码时,出现错误:

feature not supported: Unsupported parameter type:ST_POINT: line 2 col 48 (at pos 48)
但当我执行类似的SQL查询时:

select NEW ST_Point(10, 1).ST_Distance( NEW ST_Point(1, 1)) FROM dummy;
我得到了写作成绩

有什么建议吗?

从我们学到的:

过程的输入和输出参数可以具有任何基本SQL类型或表类型

遗憾的是,地理空间数据类型未按此列出

因此,您必须将scalare值(如a.ST_X)传递给函数,并使用类似的So将它们组合回过程中的一个ST_点:

创建函数计算距离 在一个长双人赛中, 在一张双人床上, 在b_long DOUBLE中, 在b_lat DOUBLE中 返回dist-DOUBLE 像 开始 选择新ST_点:a_长,:a_横向ST_距离 新ST_点:b_long,:b_lat进入假人的距离; 终止 -样本使用 选择计算距离a.ST\u X、a.ST\u Y、b.ST\u X、b.ST\u Y 从…起 从虚拟对象中选择新ST_点10.0、50.0作为a,选择新ST_点11.0、51.0作为b ; HANA 102.01的基于Web的开发工作台对此毫无怨言。从安装了SAP Eclipse开发工具的EclipseLuna中,我们得到

java.sql.SQLWarning: Not recommended feature: Using SELECT INTO in Scalar UDF
Statement 'CREATE FUNCTION "calc_distance" ( IN a_long DOUBLE, IN a_lat DOUBLE, IN b_long DOUBLE, IN b_lat ...' 
successfully executed in 16 ms 272 µs  (server processing time: 7 ms 460 µs) - Rows Affected: 0 
可能在SAP HANA Studio中,警告会变成错误。似乎那边的事情正在进行中:


从SAP HANA SPS11开始,就扩展了对空间数据类型的支持。请参阅SAP HANA Academy。

感谢您的回答!我试过你的例子,但对我不起作用。SAP DBTech JDBC:[7]:不支持功能:标量UDF不支持SQL语句HANA SP是什么?我的是SP10。对不起,我是SAP的初学者。我已将SAP HANA CLOUD与试用帐户一起使用。数据库版本1.00.102.03.1449674847几乎是当前的云版本。我的不是新的。上面的代码应该可以工作。请给出您在基于Web的开发工作台中遇到的准确错误。明天早上我将在HANA Studio中进行尝试,并返回给您。我将eclipse与sap HANA插件一起使用。我将此示例用于我的函数