首批通过分布式安全可靠测评,为关键业务系统打造
OceanBase 数据库 Oracle 模式下 PL 模块中不支持包含标识符 NEW
更新时间:2026-05-29 08:46
问题描述
OceanBase 数据库 Oracle 模式下创建包头,会报 ORA-00900 错误,具体包定义如下。
创建包头。
```shell
obclient > create or replace package dbms_context is
obj
sys_dbms_context := new sys_dbms_context('');
precedure sp_test;
end dbms_context;
/
ORA-00900: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near 'new sys_dbms_context('')' at line 1
```
引起报错的语句如下。
```shell
obj sys_dbms_context := NEW sys_dbms_context('');
```
问题原因
OceanBase 数据库 BUG。
适用版本
OceanBase 数据库 V3.x 版本。
解决方法
移除关键词 new,语义不变,代码如下。
obclient > create or replace package dbms_context is
obj
sys_dbms_context := sys_dbms_context('');
precedure sp_test;
end dbms_context;
/
Query OK, 0 rows affected, 1 warning (0.066 sec)