---
title: "ORA-20000 ~ ORA-29999 | OceanBase 文档中心"
description: "ORA-20000 ~ ORA-29999 ORA-20000：The stored procedure &#x27;raise_application_error&#x27; was called which causes this error to be generated OceanBase 错误码：20000 SQLSTATE：…"
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 3.2.3 企业版 LTS

# ORA-20000 ~ ORA-29999

更新时间：2023-07-18 17:25:58

## ORA-20000：The stored procedure 'raise_application_error' was called which causes this error to be generated

- OceanBase 错误码：20000
 - SQLSTATE：HY000
 - 错误原因：调用了过程自定义错误代码 `RAISE_APPLICATION_ERROR`，从而导致此错误。
 - 解决方法：按照错误消息中的描述修复问题，或与应用程序管理员或 DBA 联系以了解更多信息。

## ORA-21000：error number argument to raise_application_error of '%d' is out of range

- OceanBase 错误码：21000
 - SQLSTATE：HY000
 - 错误原因：`RAISE_APPLICATION_ERROR` 的错误编号参数超出了参数范围。

## ORA-21560：argument %.*s is null, invalid, or out of range

- OceanBase 错误码：5934
 - SQLSTATE：HY000
 - 错误原因：传递的参数值是 `NULL`、无效的或者超出范围的。例如 `LOB / FILE` 的位置或大小参数的值超出 1 到（4 GB-1）的范围；在无效的打开模式中打开文件等。
 - 解决方法：检查并更正程序，确保不传递 `NULL`、无效的或超出范围的参数值。

## ORA-22003：value is out of range

- OceanBase 错误码：4157
 - SQLSTATE：22003
 - 错误原因：执行指定的 `TCP/IP` 函数 `func` 时发生意外的通信错误。`TCP/IP` 函数返回代码为 `rc`，函数 `func` 参数为 `parm`。
 - 解决方法：请联系技术支持人员协助排查。

## ORA-22816 : unsupported feature with RETURNING clause

- OceanBase 错误码：9573
 - SQLSTATE：HY000
 - 错误原因：对象类型列目前不支持 RETURNING 子句，LONG 列、远程表、带有子查询的 INSERT 和 INSTEAD OF 触发器。
 - 解决方式：使用单独的语句来获取值。

## ORA-22928：invalid privilege on directories

- OceanBase 错误码：5374
 - SQLSTATE：HY000
 - 错误原因：尝试授予或撤销对于目录的权限，但是该权限对于目录是无效的。
 - 解决方法：只能授予或撤销对于目录的 `CREATE`、`DELETE`、`READ`、`WRITE` 和 `EXECUTE`权限。不要授予或撤销其他权限。

## ORA-22998：CLOB or NCLOB in multibyte character set not supported

- OceanBase 错误码：22998
 - SQLSTATE：HY000
 - 错误原因：固定宽度或变宽多字节字符集中的 `CLOB` 或 `NCLOB` 被传递给一个 `SQL` 字符函数，但是该函数不支持多字节 `LOB` 数据。
 - 解决方法：使用 `DBMS_LOB` 函数，如 `DBMS_LOB.INSTR()` 和 `DBMS_LOB.SUBSTR()`，或使用 ``PLSQL``DBMS_LOB.READ/WRITE`` 来访问 `LOB` 数据。

## ORA-23481：unexpected name string'%.*s'

- OceanBase 错误码：5932
 - SQLSTATE：HY000
 - 错误原因：错误的名称字符。

## ORA-24381：error(s) in array DML

- OceanBase 错误码：5883
 - SQLSTATE：HY000
 - 错误原因：DML 语句中的一行或多行失败。
 - 解决方法：请参考错误句柄中的错误堆栈。

## ORA-24761：transaction rolled back

- OceanBase 错误码：6002
 - SQLSTATE：40000
 - 错误原因：事务回滚。

## ORA-24761：transaction rolled back: transaction context does not exist

- OceanBase 错误码：6213
 - SQLSTATE：40000
 - 错误原因：事务回滚，事务上下文不存在。

## ORA-24761：transaction rolled back: transaction is killed

- OceanBase 错误码：6211
 - SQLSTATE：25000
 - 错误原因：事务回滚，事务被终止。

## ORA-24761：transaction rolled back: partition is frozen

- OceanBase 错误码：6214
 - SQLSTATE：25000
 - 错误原因：事务回滚，分区被冻结。

## ORA-24761：transaction rolled back: Transaction exiting

- OceanBase 错误码：6223
 - SQLSTATE：25000
 - 错误原因：事务回滚，事务已经存在。

## ORA-24761：transaction rolled back: transaction needs rollback

- OceanBase 错误码：6224
 - SQLSTATE：25000
 - 错误原因：事务回滚，事务需要回滚。

## ORA-24761：transaction rolled back: transaction context count reach limit

- OceanBase 错误码：6234
 - SQLSTATE：25000
 - 错误原因：事务回滚，事务上下文数量达到限制。

## ORA-25002 : cannot create INSTEAD OF triggers on tables

- OceanBase 错误码：9572
 - SQLSTATE：HY000
 - 错误原因：不能在表上创建 `INSTEAD OF` 触发器。
 - 解决方式：在视图上创建 `INSTEAD OF` 触发器，或者在表上创建 `DML` 触发器。

## ORA-25004 : WHEN clause is not allowed in INSTEAD OF triggers

- OceanBase 错误码：9571
 - SQLSTATE：HY000
 - 错误原因：在 INSTEAD OF 触发器中指定WHEN子句。
 - 解决方式：在创建 INSTEAD OF 触发器时删除WHEN子句。

## ORA-25005 : cannot CREATE INSTEAD OF trigger on a read-only view

- OceanBase 错误码：9663
 - SQLSTATE：HY000
 - 错误原因：尝试在使用只读选项创建的视图上创建替代触发器。无法使用 `INSTEAD OF` 触发器更新视图。
 - 解决方式：不要创建触发器。

## ORA-25009 : Nested tableclause allowed only for INSTEAD OF triggers

- OceanBase 错误码：9569
 - SQLSTATE：HY000
 - 错误原因：嵌套表子句只允许出现在 INSTEAD OF 触发器中。
 - 解决方式：使用视图嵌套表列来定义嵌套表触发器。

## ORA-25128：No insert/update/delete on table with constraint disabled and validated

- OceanBase 错误码：5795
 - SQLSTATE：HY000
 - 错误原因：尝试在包含 `DISABLE VALIDATE` 约束的表上进行插入、更新或删除操作。
 - 解决方法：更改约束的状态。

## ORA-25129：cannot modify constraint (%.*s) - no such constraint

- OceanBase 错误码：5800
 - SQLSTATE：HY000
 - 错误原因：此表不存在指定的约束。

## ORA-25137：Data value %s out of range in '%s'

- OceanBase 错误码：4157
 - SQLSTATE：22003
 - 错误原因：转换后操作数的值大于转换目标值的大小。
 - 解决方式：增加转换目标值的大小。

## ORA-25154：Column part of using clause can not have qualifier

- OceanBase 错误码：5619
 - SQLSTATE：HY000
 - 错误原因：用于命名联接（`NATURAL` 联接或使用 `USING` 子句的联接）的列不能具有显式限定符。
 - 解决方法：删除限定符。

## ORA-25156：old style outer join (+) cannot be used with ANSI joins

- OceanBase 错误码：5625
 - SQLSTATE：HY000
 - 错误原因：当查询块使用 ANSI 样式联接时，不能使用用于指定外部联接 `+` 的旧表示法。
 - 解决方法：使用 ANSI 样式指定外部联接。

## ORA-25405：Transaction state unknown

- OceanBase 错误码：6222
 - SQLSTATE：HY000
 - 错误原因：事务尝试提交时发生故障。故障切换可能不会自动确定事务状态。
 - 解决方法：用户必须手动确定事务的状态。

## ORA-28001：the password has expired

- OceanBase 错误码：4366
 - SQLSTATE：HY000
 - 错误原因：用户的帐户已过期，需要更改密码。
 - 解决方法：更改密码或联系数据库管理员。

## ORA-28115：policy with check option violation

- OceanBase 错误码：5789
 - SQLSTATE：HY000
 - 错误原因：写入数据的安全标记错误。

## ORA-29257：host %.*s unknown

- OceanBase 错误码：5928
 - SQLSTATE：HY000
 - 错误原因：指定的主机未知。
 - 解决方法：检查主机名或 IP 地址的拼写，确保主机名或 IP 地址有效。

## ORA-29261：bad argument

- OceanBase 错误码：5951
 - SQLSTATE：HY000
 - 错误原因：错误的参数传递给 PL API。
 - 解决方法：检查传递给 PL API的参数，然后重试。

## ORA-29357：%s %.*s already exists

- OceanBase 错误码：4702
 - SQLSTATE：HY000
 - 错误原因：程序 `CREATE_PLAN` 、`CREATE_CDB_PLAN`、`CREATE_CONSUMER_GROUP` 或程序包`DBMS_RESOURCE_MANAGER` 的 `CREATE_CATEGORY` 的参数名称已在使用中。
 - 解决方法：指定未使用的参数名称。

## ORA-29358：resource plan %.*s does not exist

- OceanBase 错误码：4703
 - SQLSTATE：HY000
 - 错误原因：指定了无效的计划名称作为程序包 `DBMS_RESOURCE_MANAGER` 的 `UPDATE_PLAN` 或 `UPDATE_CDB_PLAN` 的参数。
 - 解决方法：指定存在的计划名称。

## ORA-29361：value %ld for %s is outside valid range of 0 to 100

- OceanBase 错误码：4704
 - SQLSTATE：HY000
 - 错误原因：为计划指令参数指定了无效的值。
 - 解决方法：指定一个介于 `0` 和 `100` 之间的值（包括 `0` 和 `100` ）。

## ORA-29362：plan directive %.*s, %.*s does not exist

- OceanBase 错误码：4705
 - SQLSTATE：HY000
 - 错误原因：为程序包 `DBMS_RESOURCE_MANAGER` 的 `UPDATE_PLAN_DIRECTIVE` 或 `UPDATE_CDB_PLAN_DIRECTIVE` 指定了不存在的计划指令。
 - 解决方法：指定现有的计划指令。

## ORA-29364：plan directive %.*s, %.*s already exists

- OceanBase 错误码：4706
 - SQLSTATE：HY000
 - 错误原因：试图创建一个已经存在的计划指令。
 - 解决方法：使用其他值重试创建操作。

## ORA-29366：plan directive name '%.*s' not supported.

- OceanBase 错误码：4707
 - SQLSTATE：HY000
 - 错误原因：不支持的计划指令名称。

## ORA-29368：consumer group %.*s does not exist

- OceanBase 错误码：4710
 - SQLSTATE：HY000
 - 错误原因：指定了不存在的使用者组。
 - 解决方法：指定一个存在的使用者组。

## ORA-29471：DBMS_SQL access denied

- OceanBase 错误码：5856
 - SQLSTATE：HY000
 - 错误原因：出于安全考虑，`DBMS_SQL` 的访问被拒绝了。
 - 解决方法：尝试从 Alert 日志和 Trace 文件中获取更多信息。

 上一篇 下一篇 ![有帮助](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) 咨询热线
