存储过程 DDL 中文乱码
问题现象
通过 ODC 对象结构树查看存储过程 DDL 时,中文内容乱码。
问题原因
OBServer 内核处理 DDL 字符集的缺陷。
影响的版本
OceanBase V2.2.77。
解决方法
方法 1
查询以下语句:
select s.* , o.created, o.last_ddl_time, o.status from (select * from all_objects where object_type='PROCEDURE') o right join all_source s on s.name = o.object_name and s.owner = o.owner and s.type = o.object_type where s.owner='schema_name' and s.name='procedure_name' and s.type = 'PROCEDURE';返回结果:

图中, TEXT 字段即为 DDL,鼠标移动至 CLOB 类型单元格,单击该单元格右侧的放大图标查看内容。
方法 2
升级 OBServer 至 V2.2.77 最新 PATCH 版本。
查看 PL 对象结构树失败
问题现象
通过 ODC 对象结构树查看存储过程、函数或者程序包的 DDL 时,该结构信息(如变量、参数、子程序等二级结构)未显示。
问题原因
部分版本的 ODC 在解析 PL 对象 DDL 时存在已知缺陷,对复杂 DDL 解析可能会失败,导致无法显示 PL 的结构树。
影响的版本
所有版本的桌面版和 Web 版 ODC。
解决方法
升级 ODC 至最新版本。
查看 PL 对象列表和详情失败
问题现象
无法查看程序包、函数、存储过程等 PL 对象的结构树和 DDL。
问题原因
在 GBK 字符集下创建了一个包含特殊字符或者中文的存储过程,该名称在 GBK 字符集下转换出错,导致 all_source 不可用。程序包、函数、存储过程等 PL 对象的 DDL 获取依赖于 all_source。
影响的版本
所有版本的桌面版和 Web 版 ODC。
解决方法
删除包含特殊字符的 PL 对象。