首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >YashanDB 知识库|JDBC 查 st_geometry 报内存分配失败?一行授权搞定!

YashanDB 知识库|JDBC 查 st_geometry 报内存分配失败?一行授权搞定!

原创
作者头像
数据库砖家
发布2025-05-13 19:22:17
发布2025-05-13 19:22:17
2070
举报

【问题描述】

某客户在通过 YashanDB JDBC 查询包含 st_geometry 字段的数据表时,出现如下异常:

代码语言:javascript
复制
YAS-00101: cannot allocate 0 bytes for anlHeapMalloc

此错误导致业务系统无法正常获取地理信息数据,查询直接失败。

【影响范围】

所有 YashanDB 版本

查询包含 st_geometry 类型字段的 SQL

使用 JDBC 驱动(不限版本)

【问题分析】

该异常源于:

当前数据库用户没有 st_geometry 类型的执行权限(EXECUTE ANY TYPE),导致驱动在反序列化该类型时内存分配失败。

st_geometry 是一种用户自定义类型(UDT),若没有执行权限,系统在尝试构造对象结构时会出错,从而触发 0 bytes 分配失败异常。

【解决方法】

为当前数据库用户添加 EXECUTE ANY TYPE 权限:

代码语言:javascript
复制
GRANT EXECUTE ANY TYPE TO ;

执行后即刻生效,无需重启服务。

【典型场景】

【规避建议】

【总结】

报错 YAS-00101 cannot allocate 0 bytes 往往不是内存问题,而是权限缺失;

关键是给用户加上对 st_geometry 类型的 EXECUTE 权限;

推荐在涉及 GIS 数据使用场景中默认赋权。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档