---
title: 访问不存在的 Package.Cursor 导致 Core-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于访问不存在的 Package.Cursor 导致 Core相关的常见问题和使用技巧，帮助您快速解决访问不存在的 Package.Cursor 导致 Core的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# 访问不存在的 Package.Cursor 导致 Core

更新时间：2026-06-04 09:56

适用版本： V3.2.x 内容类型：Troubleshoot  

## 问题现象

resolve package cursor 时如果包中不存在对应的游标，在 resolve 阶段可能 core 掉。

## 问题原因

内核代码 BUG，未对返回的 cursor 做 null 值检查。

如下用例：

```sql
create or replace package is end;
/
begin open pack.c; end;
/

```

resolve `open.c` 时，会把 `pack.c` 当做包中的 cursor 进行解析，在解析过程中发现包中不存在对应的 cursor，会返回 null，上层未对 cursor 进行空值判断就访问 cursor 中内存，导致 core 掉。

未对返回的 cursor 做 null 值检查。

## 问题的风险及影响

对于一些非法 procedure 在 resolve 过程中可能 core，主要是针对非法 cursor 的 resolve 过程会 core 掉。

## 影响租户

影响 OceanBase 数据库中的 Oracle 租户，对于 SYS 租户和 MySQL 租户无影响。

## 影响的版本

V3.2.3 GA（oceanbase-3.2.3.0-20220418212020）及之后版本。

## 解决方法

- 升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库 V3.2.3 BP6 Hotfix2（oceanbase-3.2.3.3-106020042022120915）、V3.2.3 BP6 Hotfix3（oceanbase-3.2.3.3-106030012022121311）、V3.2.3 BP6 Hotfix4（oceanbase-3.2.3.3-106040022022122222）、V3.2.3 BP6 Hotfix5（oceanbase-3.2.3.3-106050012023051617）、V3.2.3 BP7（oceanbase-3.2.3.3-107000092023011911）及之后版本。
 - 检查 package cursor 的合法性，修改不合法的 cursor。

## 规避方式

检查 package cursor 的合法性，修改不合法的 cursor。

上一篇

[OBServer 单节点在大 in 场景，core 掉，爆栈](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000003403665)

下一篇

[使用 ODC 调试带有 CursorForLoop 语句的存储过程时，OBServer 进程可能 core dump](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000075121) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
