如何在SAP HANA中通过JAVA JDBC读取ST_GEOMETRY和ST_POINT数据?

2020-09-13 04:04发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在尝试通过jdbc程序显示空间数据。

下面是我在SAP HANA中的表定义。

我在上表中插入了一些空间数据行。

当我查询上表时,我得到的结果如下图所示。

现在我想使用jdbc从Java程序中获取以上数据。

下面是我的代码

现在如何通过java jdbc代码读取ST_GEOMETRY数据。

我在结果集中获取了ST_GEOMETRY数据类型的字节[]。

但是如何将其转换为SAP HANA Studio中的实际几何数据?

此致

库尔布山

(14.5 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在尝试通过jdbc程序显示空间数据。

下面是我在SAP HANA中的表定义。

我在上表中插入了一些空间数据行。

当我查询上表时,我得到的结果如下图所示。

现在我想使用jdbc从Java程序中获取以上数据。

下面是我的代码

现在如何通过java jdbc代码读取ST_GEOMETRY数据。

我在结果集中获取了ST_GEOMETRY数据类型的字节[]。

但是如何将其转换为SAP HANA Studio中的实际几何数据?

此致

库尔布山

(14.5 kB)
付费偷看设置
发送
3条回答
野沐沐
1楼 · 2020-09-13 04:19.采纳回答

SAP HANA空间数据类型是SAP HANA内部的,并且没有默认映射到JAVA对象或数据类型。

因此,您必须决定如何在JAVA程序中表示空间信息。

据此,您可以通过ST_As ...方法向SAP HANA请求空间数据的不同表示形式(请查看空间参考以获取完整描述)。

对于 例如:

创建列表空间形状(shapeid int,shape st_geometry);
 插入空间形状值(1,NEW ST_Point(1.0,2.0));
 从空间形状中选择*;
/*
 形状
 1 0101000000000000000000F03F0000000000000040
 */

 此处的输出是呈现为十六进制文本的SAP HANA内部二进制值。 此数据对HANA客户端无用。

 选择
     Shapeid,
     --shape RAW_HANA_BINARY_VALUE,
     --shape.ST_AsBinary()二进制,
     shape.ST_AsEWKT()EWKText,
     --shape.ST_AsEWKB()EWKB
     shape.ST_AsGeoJSON()GeoJson,
     shape.ST_AsText()文本,
     --shape.ST_AsWKB()WKBinary,
     shape.ST_AsWKT()WKT
 来自空间形状

/*
 形状EWKTEXT GEOJSON TEXT WKT
 1 SRID = 0; POINT(1 2){"类型":"点","坐标":[1,2]}点(1 2)点(1 2)
 */
 

第二条语句使用某些数据访问方法以各种人类可读的文本格式提供空间信息,例如(E) WKT (知名文字)或GeoJSON。 我注释掉了二进制输出的相应方法,但您也可以在程序中使用它们。

最重要的是:您的程序需要一种表示空间数据的方法,并以此为基础 SAP HANA提供适用于该数据结构的表示形式。

野沐沐
2楼-- · 2020-09-13 04:18

感谢 Lad Breddemann 进行了详细说明。 我了解如何通过Java程序表示空间数据。

此致

Kulbhushan

吹牛啤
3楼-- · 2020-09-13 04:16

这可能是您已经尝试过的东西...但是您是否尝试过将其读取为字符串? 只是尝试不同的东西

一周热门 更多>