首批通过分布式安全可靠测评,为关键业务系统打造
select udf px 执行时事务层报 6220
更新时间:2026-06-12 03:56
问题现象
标题对应问题:px 执行 select udf 且 udf 内部有一条 select 语句时,事务层会报 6220 错误。
相关问题:流式 cursor 定义的 select 语句中带有 udf 时,会导致事务上下文泄漏,触发报错。
关键诊断信息
触发条件
px 执行 select udf 且 udf 内部有一条 select 语句。
问题原因
select udf 会开事务,udf 内部的 select 语句走的是嵌套逻辑,px 并发开的 task 无法保证顺序执行,因此事务层报错。
Oracle 模式下,流式 cursor 执行前,会备份 session 环境,cursor 执行时,select udf 会开事务,且相关状态记录在 session 上,cursor 执行后,会用之前备份的 seesion 环境恢复当前 session,导致 session 记录的事务相关信息丢失。
问题的风险及影响
报错 -6220。
影响租户
影响 OceanBase 数据库中的 Oracle 租户,对于 SYS 租户和 MySQL 租户无影响。
影响版本
OceanBase 数据库企业版 V2.2.77 GA(oceanbase-2.2.77-20210508211731)及之后版本、V3.1.2 GA(oceanbase-3.1.2-20210618150922)及之后版本、V3.2.3 GA(oceanbase-3.2.3.0-20220418212020)及之后版本。
解决方法
升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库企业版 V2.2.77 BP15(oceanbase-2.2.77-115000012023010607)及之后版本、V3.1.2 BP11(oceanbase-3.1.2-111000052023010412)及之后版本、V3.2.3 BP7(oceanbase-3.2.3.3-107000092023011911)及之后版本。