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

# 9500 ~ 9999

更新时间：2026-07-15 15:16:39

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/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 9574 (HY000) : document is not a stylesheet

- OceanBase 错误码：9574
 - 错误原因：尝试将非样式表（stylesheet）文档作为 XSL 样式表使用。
 - 解决方式：检查 XSL 样式表的格式和有效性，确保无格式错误、参数错误等问题。

## 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 9760 (HY000): cannot fast refresh materialized view %s: %s

- OceanBase 错误码：9760
 - 错误原因：不符合创建增量刷新物化视图的基本要求。例如：

     - 增量刷新物化视图定义中的基表没有创建物化视图日志（mlog）表。
     - 增量刷新物化视图定义中不支持包含集合操作符。
     - 增量刷新物化视图中使用的列需要在基表的 mlog 中有维护。
 - 解决方法：检查创建增量刷新物化视图的定义是否符合增量刷新基本要求。有关增量刷新基本要求的介绍信息，参见 [刷新物化视图](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685859)。

#### 说明

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

## ERROR 9762 (42000) : Loading local data is disabled; this must be enabled on both the client and server sides

- OceanBase 错误码：9762
 - 兼容 MySQL 错误码：3948
 - 错误原因：Local Data 导入数据失败。
 - 解决方法：如果需要使用 load data local 功能，需要保证：

     - OBClient 版本不低于 2.2.4。
     - ODP 版本不低于 3.2.4（直连 OBServer 无此要求）。
     - OBJDBC 版本不低于 2.4.8（如果使用 Java + OBJDBC）。

      另外，可以直接使用 MySQL 或 MariaDB 原生客户端，对版本没有特殊要求。

      #### 说明

      MySQL/MariaDB 客户端连接数据库时增加命令行参数 `--local-infile`。

      如果版本没有问题，需要设置变量 `local_infile` 值为 ON：

           - 开启变量。

            ```shell
            set @@local_infile=1;

            ```
           - 检查变量。

            ```shell
            show variables like 'local_infile';

            ```

## ERROR 9765 (HY000) : object '%.*s' must be of type function or array to be used this way

- OceanBase 错误码：9765
 - 错误原因：对象 '%.*s' 必须是函数或数组类型才能这样使用。
 - 解决方法：检查对象的类型，并根据需要进行调整。

## ERROR 9800 (HY000): To be compatible with MySQL, if an exception occurs when compiling an OB PL object (such as the object does not exist or a parameter mismatch), the relevant statement will be converted to a statement that throws an exception, and compiled object will be evicted by any schema change which may cause performance problems. User should create or redefine the pl object of the problem indicated in the warning. Problem object name: '%.*s'

- OceanBase 错误码：9800
 - 错误原因：

  PL 对象编译时出现了 MySQL 兼容性异常，可能有以下几种情况：

     - 引用的对象不存在
     - 参数不匹配
     - 类型不兼容
 - 解决方法：修复 PL 对象中的引用、参数、类型等问题后，重新编译 PL 对象，防止后续因频繁重编译导致性能问题。

## ERROR 9808 (HY000) : Table type is not valid, the definition of materialized view can only reference user tables or other materialized views

- OceanBase 错误码：9808
 - 错误原因：物化视图的定义中引用的表类型无效。
 - 解决方法：检查物化视图的定义引用的对象类型（物化视图的定义只能引用用户表或其他物化视图）。

## ERROR 9809 (HY000) : Base tables are altered during the creation or complete refresh of materialized views, please try again when base tables have no ongoing DDL operations

- OceanBase 错误码：9809
 - 错误原因：在创建或完全刷新物化视图期间，基表正在进行的 DDL 操作。
 - 解决方法：检查物化视图基表是否有正在进行的 DDL 操作。

## ERROR 9810 (HY000) : Materialized view %s.%s has invalid dependency info, please perform a complete refresh to recover

- OceanBase 错误码：9810
 - 错误原因：物化视图 `%s` 的依赖关系信息无效。
 - 解决方法：对物化视图做一次全量刷新。

## ERROR 9826 (HY000) : Python env could not be found

- OceanBase 错误码：9826
 - 错误原因：未找到 Python 环境。
 - 解决方法：确认并配置 Python 环境。

#### 说明

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

## ERROR 9827 (HY000) : python params error", "%s

- OceanBase 错误码：9827
 - 错误原因：Python 参数错误。
 - 解决方法：检查并配置正确的 Python 参数。

## ERROR 9828 (HY000) : python execute error", "%s

- OceanBase 错误码：9828
 - 错误原因：在数据库环境中执行 Python 代码或脚本的过程中发生了故障。
 - 解决方法：检查 Python 代码或脚本，检查环境是否兼容。

## ERROR 9832 (HY000) : cannot alter a type that is not valid

- OceanBase 错误码：9832
 - 错误原因：无法修改一个无效的用户定义类型。
 - 解决方法：其核心解决思路与处理数据库迁移中的对象不兼容问题类似，即通过修正对象的定义来使其在目标环境中变为有效。

## ERROR 9834 (HY000) : must specify either CASCADE or INVALIDATE option

- OceanBase 错误码：9834
 - 错误原因：必须指定 `CASCADE` 或 `INVALIDATE` 选项。
 - 解决方法：在您的 `ALTER` 语句末尾，根据您的业务需求，添加 `CASCADE` 或 `INVALIDATE` 选项。

## 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) 咨询热线
