---
title: "9500 ~ 9999 - OceanBase 数据库 V4.2.2 | OceanBase 文档中心"
description: "9500 ~ 9999 此范围表示过程语言 （PL）错误码。 ERROR 9502 (HY000) : OUT and IN/OUT modes cannot be used in this context OceanBase 错误码：9502 错误原因：仅当动态语句的 DML 语句含 returning 变量，并且…"
---
切换语言

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

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

# 9500 ~ 9999

更新时间：2026-04-10 11:58:37

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.2.2/zh-CN/700.reference/900.error-code/600.error-code-of-mysql-mode/1000.9500-9999-of-mysql-mode.md)  

此范围表示过程语言 （PL）错误码。

## ERROR 9502 (HY000) : OUT and IN/OUT modes cannot be used in this context

- OceanBase 错误码：9502
 - 错误原因：仅当动态语句的 DML 语句含 `returning` 变量，并且外部没有 `INTO` 变量时，才允许使用 `OUT` 参数。
 - 解决方式：检查动态语句使用 `OUT` 参数的用法是否符合规范。

## ERROR 9503 (HY000) : object '%.*s' of type %.*s not found in schema '%.*s'

- OceanBase 错误码：9503
 - 错误原因：不存在指定类型和名称的对象。
 - 解决方式：使用正确的类型和对象名。

## ERROR 9506 (HY000) : Only schema-level programs allow %s

- OceanBase 错误码：9506
 - 错误原因：`INVOKER RIGHT` 子句仅允许在 standalone 的 Procedure 或 Function 里定义。
 - 解决方式：删除 `INVOKER RIGHT` 子句。

## ERROR 9507 (HY000) : at most one declaration for '%.*s' is permitted

- OceanBase 错误码：9507
 - 错误原因：在同一个命名空间发现了重复的标识符。
 - 解决方式：确保在同一个命名空间标识符的唯一性。

## ERROR 9508 (HY000) : duplicate fields in RECORD,TABLE or argument list are not permitted

- OceanBase 错误码：9508
 - 错误原因：PL 具有同名参数。
 - 解决方式：PL 的参数名需要保持唯一。

## ERROR 9509 (HY000) : Pragma AUTONOMOUS_TRANSACTION cannot be specified here

- OceanBase 错误码：9509
 - 错误原因：自治事务子句出现的位置不对，只能出现在第一层 Block。
 - 解决方式：修改自治事务子句的位置。

## ERROR 9510 (HY000) : illegal EXIT/CONTINUE statement; it must appear inside a loop

- OceanBase 错误码：9510
 - 错误原因：`EXIT` 或 `CONTINUE` 语句必须用在一个循环体内。
 - 解决方式：检查 `EXIT` 或 `CONTINUE` 子句是否使用正确。

## ERROR 9512 (HY000) : EXIT/CONTINUE label '%.*s' must label a LOOP statement

- OceanBase 错误码：9512
 - 错误原因：`EXIT` 或 `CONTINUE` 子句的目的端不是一个有效 Label。
 - 解决方式：检查`EXIT` 或 `CONTINUE` 的目的端 Label 是否有效。

## ERROR 9513 (HY000) : expression '%.*s' is inappropriate as the left hand side of an assignment statement

- OceanBase 错误码：9513
 - 错误原因：静态游标不能被用来赋值。
 - 解决方式：检查赋值语句的合法性。

## ERROR 9514 (HY000) : a variable declared NOT NULL must have an initialization assignment

- OceanBase 错误码：9514
 - 错误原因：`NOT NULL` 约束的变量没有被显式初始化。
 - 解决方式：去掉 `NOT NULL` 约束，或者显式初始化变量。

## ERROR 9515 (HY000) : Constant declarations should contain initialization assignments

- OceanBase 错误码：9515
 - 错误原因：Constant 变量没有被显式初始化。
 - 解决方式：去掉 Constant，或者显式初始化变量。

## ERROR 9516 (HY000) : Cursor Variables cannot be declared as part of a package

- OceanBase 错误码：9516
 - 错误原因：游标不允许在 PACKAGE 中声明。

## ERROR 9518 (HY000) : value in LIMIT clause: \'%.*s\' use is invalid

- OceanBase 错误码：9518
 - 错误原因：`LIMIT` 子句的表达式数据类型不正确。
 - 解决方法：修改数据类型为数字类型。

## ERROR 9519 (HY000) : expression is of wrong type

- OceanBase 错误码：9519
 - 错误原因：表达式的结果类型不符合预期。
 - 解决方法：请检查表达式的结果类型。

## ERROR 9520 (HY000) : cannot compile body of '%.*s' without its specification

- OceanBase 错误码：9520
 - 错误原因：UDT 缺少 SPEC 申明。
 - 解决方法：请先添加 SPEC 申明。

## ERROR 9521 (HY000) : subprogram '%.*s' is declared in an object type body and must be defined in the object type specification

- OceanBase 错误码：9521
 - 错误原因：Object 中的函数定义必须在 SPEC 中先声明。
 - 解决方法：在 SPEC 中申明函数。

## ERROR 9522 (HY000) : subprogram or cursor '%.*s' is declared in an object type specification and must be defined in the object type body

- OceanBase 错误码：9522
 - 错误原因：Object 中的子过程或者 Cursor 在 SPEC 中申明了，必须在 BODY 中进行定义。
 - 解决方法：删除申明或者对申明进行定义。

## ERROR 9523 (HY000) : An object type may have only 1 MAP or 1 ORDER method

- OceanBase 错误码：9523
 - 错误原因：一个 Object 类型只能定义一个 `MAP` 或者 `ORDER` 函数（不能同时定义 `MAP` 或 `ORDER` 函数）。
 - 解决方法：去除多余的 `MAP` 或 `ORDER` 函数，保留一个合适的函数。

## ERROR 9524 (HY000) : A MAP or ORDER function is required for comparing objects in PL/SQL

- OceanBase 错误码：9524
 - 错误原因：在 PL 中比较 Object 类型，需要定义一个 `MAP` 或者 `ORDER` 函数。
 - 解决方法：定义一个合适的 `MAP` 或者 `ORDER` 比较函数。

## ERROR 9525 (HY000) : Only a function may be a MAP, ORDER or CONSTRUCTOR method

- OceanBase 错误码：9525
 - 错误原因：`MAP` 、`ORDER` 或者 `CONSTRUCTOR` 必须定义为一个 FUNCTION。
 - 解决方法：修改定义并重新编译。

## ERROR 9526 (HY000) : identifier '%.*s' too long

- OceanBase 错误码：9526
 - 错误原因：Label 的名称过长，最大只允许128字符。
 - 解决方法：修改长度。

## ERROR 9527 (HY000) : a static method cannot be invoked on an instance value

- OceanBase 错误码：9527
 - 错误原因：实例不能调用静态函数。
 - 解决方法：修改调用方法，使用类型名调用。

## ERROR 9528 (HY000) ：constructor method name must match type name

- OceanBase 错误码：9528
 - 错误原因：构造函数名称必须和类型名相同。
 - 解决方法：确保两者相同。

## ERROR 9529 (HY000) ：previous use of '%.*s' conflicts with this use

- OceanBase 错误码：9529
 - 错误原因：命名冲突。比如定义不同类型的变量，但该变量名已经在其它地方使用了。
 - 解决方法：确保命名的变量名没有重复。

## ERROR 9530 (HY000) ：the SELF parameter can be declared only as IN or as IN OUT

- OceanBase 错误码：9530
 - 错误原因：`SELF` 参数的修饰符必须是 `IN` 或者 `IN OUT`，不能是其它修饰符。
 - 解决方法：修改修饰符以符合要求。

## ERROR 9531 (HY000) ：MAP methods must return a scalar type

- OceanBase 错误码：9531
 - 错误原因：`MAP` 函数必须返回一个标量值，不能是一些复杂类型。
 - 解决方法：修改函数返回值类型。

## ERROR 9532 (HY000) ：MAP methods must be declared without any parameters other than (optional) SELF

- OceanBase 错误码：9532
 - 错误原因：`MAP` 函数的参数有且只有一个 `SELF` 参数（`SELF` 参数可以是显式定义或者隐式定义）
 - 解决方法：去除多余的参数。

## ERROR 9533 (HY000) ：ORDER methods must return an INTEGER

- OceanBase 错误码：9533
 - 错误原因：`ORDER` 函数必须返回一个整型数。
 - 解决方法：修改函数返回值类型。

## ERROR 9534 (HY000) ：The parameter type in an ORDER method must be the containing object type

- OceanBase 错误码：9534
 - 错误原因：`ORDER` 函数的参数类型必须是所属类型的类型。
 - 解决方法：修改参数类型。

## ERROR 9535 (HY000) ：Within SQL statements, only equality comparisons of objects are allowed without a map or order function

- OceanBase 错误码：9535
 - 错误原因：在 SQL 语句中，没有 `MAP` 或者 `ORDER` 函数，只能进行等值比较。
 - 解决方法：增加 `MAP` 或 `ORDER` 函数，或者只进行等值比较。

## ERROR 9537 (HY000) ：The parameters to an ORDER function must have IN mode

- OceanBase 错误码：9537
 - 错误原因：`ORDER` 函数的参数修饰符必须是 `IN`。
 - 解决方法：修改参数修饰符。

## ERROR 9538 (HY000) ：ORDER methods must be declared with 1 (one) parameter in addition to (optional) SELF

- OceanBase 错误码：9538
 - 错误原因：`ORDER` 函数必须定义除了 `SELF` 参数之外的参数。
 - 解决方法：定义一个所属类型的额外的参数。

## ERROR 9539 (HY000) : type '%.*s' is malformed because it is a non-REF mutually recursive type

- OceanBase 错误码：9539
 - 错误原因：类型互相递归引用。
 - 解决方法：解决递归引用的问题。

## ERROR 9540 (HY000) ：$ERROR: %.*s

- OceanBase 错误码：9540
 - 错误原因：通过 `$ERROR` 指令产生的异常，预期异常。
 - 解决方法：无需处理。

## ERROR 9541 (HY000) : RETURN statement in a CONSTRUCTOR cannot include an expression

- OceanBase 错误码：9541
 - 错误原因：`CONSTRUCTOR` 函数的 `RETURN` 语句不能带任何表达式。
 - 解决方法：去除 `RETURN` 后面的表达式。

## ERROR 9542 (HY000) : wrong number or types of arguments in call to '%.*s'

- OceanBase 错误码：9542
 - 错误原因：子过程调用的时候，没有找到合适的函数，可能是函数名不对，也可能是参数个数不对，也可能是参数的类型不匹配。
 - 解决方法：检查函数名，参数个数和参数类型。如果还有问题，再检查一下函数的访问范围。

## ERROR 9543 (HY000) : '%.*s' must be a type

- OceanBase 错误码：9543
 - 错误原因：声明或者表达式的类型修饰符不是一个合法的类型。例如可能没有加 `%type`，`%rowtype`。
 - 解决方法：修改修饰符成为一个合法的类型。

## ERROR 9544 (HY000) : too many declarations of '%.*s' match this call

- OceanBase 错误码：9544
 - 错误原因：匹配多个函数调用。可能调用的函数存在多个可匹配的调用方法，没有一个可以精确匹配的函数。
 - 解决方法：检查调用函数的名字是否正确及参数类型是否正确。

## ERROR 9694 (42000) : Duplicate condition information item '%s'

- OceanBase 错误码：9694
 - 错误原因：condition 定义中出现了重复项。
 - 解决方法：condition 定义中删除重复项。

#### 说明

该错误码从 V4.0.0 版本开始引入。

## ERROR 9695 (02000) : Unhandled user-defined not found condition

- OceanBase 错误码：9695
 - 错误原因：使用了用户未定义的 condition。
 - 解决方法：不要使用未定义的 condition。

## ERROR 9743(HY000) : Can't drop or alter a procedure/function from within another stored routine.Can't drop or alter a '%s' from within another stored routine

- OceanBase 错误码：9743
 - 兼容 MySQL 错误码：1357

#### 说明

该错误码从 V4.1.0 版本开始引入。

## ERROR 9747 (HY000) : malformed ps packet

- OceanBase 错误码：9747
 - 错误原因：客户端发送的预处理语句（prepared statement）数据包格式错误。
 - 解决方法：可以检查客户端和服务器版本是否兼容，确保客户端和服务器版本匹配。

#### 说明

该错误码从 V4.2.0 版本开始引入。

## ERROR 9749 (HY000) : object does not exist

- OceanBase 错误码：9749
 - 错误原因：请求的对象不存在。
 - 解决方式：检查请求的对象名称是否正确或错误，确认是否可以找到该对象。

## ERROR 9750 (HY000) : PL/SQL: index for PL/SQL table out of range for host language array

- OceanBase 错误码：9750
 - 错误原因：在使用 PL/SQL 表时，索引超出了数组的范围。
 - 解决方式：确保索引的值没有超出数组范围。

## ERROR 9754 (HY000) : debug_session_id = %u does not exist

- OceanBase 错误码：9754
 - 错误原因：`debug_session_id` 不存在。
 - 解决方法：检查会话 ID 是否存在。

#### 说明

该错误码从 V4.2.2 版本开始引入。

## ERROR 20000 (HY000) : The stored procedure 'raise_application_error' was called which causes this error to be generated","-%05ld: %.*s

- OceanBase 错误码：20000
 - 错误原因：通过 `RAISE_APPLICATION_ERROR` 过程调用生成的用户自定义异常，这个错误码是一个隐式码，实际以用户指定的错误码为准。用过程 `RAISE_APPLICATION_ERROR` 指定的用户错误码范围在 20000 - 20999 之间。
 - 解决方式：用户自定义异常，是由用户显示抛出，无需处理。

## ERROR 21000 (HY000) : error number argument to raise_application_error of '%d' is out of range

- OceanBase 错误码：21000
 - 错误原因：通过 `RAISE_APPLICATION_ERROR` 产生的用户自定义异常错误码范围不正确，用户指定的错误码范围必须在 20000 - 20999 之间。
 - 解决方式：调整错误码范围为 20000 - 20999 之间。

## ERROR 32491 (HY000) : snapshot expression not allowed here

- OceanBase 错误码：32491
 - 错误原因：此处不允许出现 SNAPSHOT 表达式，SNAPSHOT 表达式仅支持只读语句。
 - 解决方式：去掉 SNAPSHOT 表达式，或者修改语句为只读。

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