【 使用环境 】测试环境
【 OB 】
【 使用版本 :5.7.25-OceanBase-v3.2.3.3】
【问题描述】执行alter table 表名 modify column relation varchar(16000)comment"关系";
【报错信息:】
SQL错误[1235][0A000]: Modify large text/lob column not supported
Modify large text/lob column not supported
【复现路径】新建表包含有text类型的字段,执行sql变更为varcahr类型
@论坛小助手
针对您在测试环境中尝试将包含 text 类型字段的表更改为 varchar 类型时遇到错误 1235 的情况,报错信息为 ‘Modify large text/lob column not supported’,这通常是因为 OceanBase 目前并不支持直接修改大文本或大对象列的类型。这类操作可能会涉及到底层存储结构的重大变更,OceanBase 为了保证数据的安全性和一致性,暂时限制了此类修改。
推荐使用 obdiag 工具进行根因分析和日志采集
虽然在这种情况下 obdiag 可能不会直接提供解决方案,但通过收集日志可以进一步确认错误的具体原因。以下是建议的步骤:
根因分析场景: DDL过程中报磁盘空间不足的问题(如果没有明显的磁盘空间问题,则跳过此步骤)
根因分析命令: obdiag rca run --scene=ddl_disk_full
解释: 这个命令可以帮助我们检查是否因为磁盘空间不足导致 DDL 操作失败。虽然您的报错信息看起来并不是由于磁盘空间问题,但我们仍然可以通过这个命令排除可能性。
日志采集场景: DDL操作失败
日志采集命令: obdiag gather scene run --scene=observer.ddl_failure
解释: 这个命令会收集与 DDL 操作相关的日志信息,有助于我们进一步分析为什么修改 text 列类型的操作失败了。
请您执行上述命令,并将采集到的日志压缩包提供给我们,以便我们能够更详细地查看日志并提供进一步的帮助。
为了更好地帮助您,请您提供以下信息:
- 您当前数据库的具体版本信息(包括补丁版本)。
- 涉及到的表的结构定义,特别是
text类型字段的具体定义。 - 您执行的 DDL 语句的具体内容。
- 如果可能的话,提供关于这个表的数据量信息(例如,表的大小、行数等)。
- 您是否有任何自定义配置或环境设置?
谢谢您的配合!
附上敏捷诊断工具 obdiag 使用帮助链接
你好,你提的这个技术问题牵涉到OceanBase企业版范围内的功能细节;针对此类问题,建议你通过以下方式寻求帮助:
-
如你所在的企业客户已签署OceanBase企业版销售合同,请你联系客户经理;
-
如你所在的企业客户尚未签署OceanBase企业版销售合同,你可通过OceanBase官网商务咨询页面留下你的联系方式,OceanBase企业版的业务顾问会在一个工作日内与你联系。
另外,我们欢迎你使用社区版,并在论坛/社群中分享你对社区版本的想法、经验和问题,与其他社区成员共同交流。