ITPub博客

首页 > 数据库 > 国内数据库 > YashanDB ST_GEOMCOLLFROMTEXT函数

YashanDB ST_GEOMCOLLFROMTEXT函数

国内数据库 作者:崖山数据库系统YashanDB 时间:2025-05-23 09:24:09 0 删除 编辑

ST_GEOMFROMTEXT(同名函数ST_GEOMETRYFROMTEXT)函数根据给定的wkt(Well-Known Text)和srid返回一个ST_GEOMETRY类型数据。

wkt

wkt的数据类型是CLOB,遵循如下规则:

  • wkt需要是一个有效的Well-Known Text,否则报错。
  • 支持的坐标的最高维度是三维,如果输入是四维的坐标,或带有'M'字样的坐标,则会忽略第四个坐标轴,生成三维坐标。
  • 如果输入的坐标中既有二维的点,也有三维的点,则会把二维的点提升到三维,Z轴的数值补零。
  • 支持输入'inf'、'nan',如果一个坐标全是'nan',则会存为EMPTY。
  • 支持输入空的ST_GEOMETRY数据(如POINT EMPTY)。
  • 点坐标不能跟EMPTY同时使用,如MULTIPOINT(1 1,EMPTY)就会报错。
  • 输入的wkt如果前面的字符已经构成了一个有效的ST_GEOMETRY数据,并且后面还有其他字符,则会生成前面的有效ST_GEOMETRY数据。
  • 支持能够隐式转换成CLOB的数据类型。

srid

srid的数据类型是INT,表示该ST_GEOMETRY类型数据的空间参考系,遵循如下规则:

  • 支持能够隐式转换成INT的类型,如果输入的是小数则进行四舍五入转换。
  • 该参数可以省略,省略时默认值是0(srid=0表示没有定义空间参考系)。
  • 如果输入的是负数,则会按照0进行处理。

当输入的参数存在NULL时,函数返回NULL,空串作为NULL处理。

示例(单机HEAP表)

--生成PointSELECT ST_AsText(ST_GeomFromText('POINT(1 2)', 4326), 0) res FROM DUAL;RES                                             
---------------------------------------------------------------- POINT (1 2)                                                     --维度混合SELECT ST_AsText(ST_GeomFromText('MULTIPOINT(1 2 3, 1 1)', 4326), 0) res FROM DUAL;RES                                             
---------------------------------------------------------------- MULTIPOINT Z (1 2 3, 1 1 0)                                     --支持inf和nan的输入SELECT ST_AsText(St_GeomFromText('MULTIPOINT(inf inf,nan nan)')) res FROM DUAL;RES                                             
---------------------------------------------------------------- MULTIPOINT (inf inf, EMPTY)                                     --SridSELECT ST_Srid(st_GeomFromText('POINT(1 2)', 4326)) res FROM DUAL;
         RES 
------------ 
        4326SELECT ST_Srid(st_GeomFromText('POINT(1 2)')) res FROM DUAL;
         RES 
------------ 
           0SELECT ST_Srid(st_GeomFromText('POINT(1 2)', -12)) res FROM DUAL;
         RES 
------------ 
           0--同名函数ST_GeometryFromTextSELECT ST_AsText(ST_GeometryFromText('POINT(1 2)', 4326), 0) res FROM DUAL;RES                                             
---------------------------------------------------------------- POINT (1 2)


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3085461/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    639825