---
slug: /error-code-9500-9999
---

# 9500 ~ 9999

This range represents process language (PL) error codes.

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

* seekdb error code: 9502

* Error reason: The `OUT` parameter can be used only when the DML statement in the dynamic statement contains the `returning` variable and no `INTO` variable is specified in the external clause.

* Solution: Check whether the `OUT` parameter is used correctly.

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

* seekdb error code: 9503

* Error reason: The object with the specified type and name does not exist.

* Solution: Use the correct type and object name.

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

* seekdb error code: 9506

* Error reason: The `INVOKER RIGHT` clause can be defined only in standalone procedures or functions.

* Solution: Remove the `INVOKER RIGHT` clause.

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

* seekdb error code: 9507

* Error reason: The identifier is repeated in the same namespace.

* Solution: Ensure that the identifier is unique in the same namespace.

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

* seekdb error code: 9508

* Error reason: The PL has parameters with the same name.

* Solution: Ensure that the parameter names are unique.

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

* seekdb error code: 9509

* Error reason: The autonomous transaction clause is specified in an invalid position. It can be specified only in the top-level block.

* Solution: Modify the position of the autonomous transaction clause.

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

* seekdb error code: 9510

* Error reason: The `EXIT` or `CONTINUE` statement is specified outside a loop.

* Solution: Check whether the `EXIT` or `CONTINUE` clause is used correctly.

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

* seekdb error code: 9512

* Error reason: The destination of the `EXIT` or `CONTINUE` clause is not a valid label.

* Solution: Check whether the destination label of the `EXIT` or `CONTINUE` clause is valid.

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

* seekdb error code: 9513

* Error reason: A static cursor cannot be used for assignment.

* Solution: Check whether the assignment statement is valid.

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

* seekdb error code: 9514

* Error reason: The `NOT NULL` constraint is specified for a variable that is not explicitly initialized.

* Solution: Remove the `NOT NULL` constraint or explicitly initialize the variable.

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

* seekdb error code: 9515

* Error reason: The constant variable is not explicitly initialized.

* Solution: Remove the constant variable or explicitly initialize the variable.

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

* seekdb error code: 9516

* Error reason: A cursor cannot be declared in a package.

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

* seekdb error code: 9518

* Error reason: The data type of the expression in the `LIMIT` clause is invalid.

* Solution: Change the data type to a numeric data type.

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

* seekdb error code: 9519

* Error reason: The result type of the expression is invalid.

* Solution: Check the result type of the expression.

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

* seekdb error code: 9520

* Error reason: The UDT is missing the SPEC declaration.

* Solution: Add the SPEC declaration.

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

* seekdb error code: 9521

* Error reason: The function in the object must be declared in the SPEC.

* Solution: Declare the function in the SPEC.

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

* seekdb error code: 9522

* Error reason: The subprogram or cursor in the object is declared in the SPEC and must be defined in the BODY.

* Solution: Remove the declaration or define the declaration.

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

* seekdb error code: 9523

* Error reason: An object type can have only one `MAP` or `ORDER` function. It cannot have both `MAP` and `ORDER` functions.

* Solution: Remove the extra `MAP` or `ORDER` function and retain one appropriate function.

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

* seekdb error code: 9524

* Error reason: A `MAP` or `ORDER` function must be defined for comparing object types in PL/SQL.

* Solution: Define an appropriate `MAP` or `ORDER` comparison function.

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

* seekdb error code: 9525

* Error reason: The `MAP`, `ORDER`, or `CONSTRUCTOR` method must be defined as a function.

* Solution: Modify the definition and recompile.

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

* seekdb error code: 9526

* Cause: The label name is too long. The maximum length is 128 characters.

* Solution: Modify the length.

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

* seekdb error code: 9527

* Cause: An instance cannot invoke a static function.

* Solution: Modify the invocation method to use the type name.

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

* seekdb error code: 9528

* Cause: The constructor method name must match the type name.

* Solution: Ensure that the names match.

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

* seekdb error code: 9529

* Cause: A naming conflict. For example, different types of variables are defined, but the variable name has already been used elsewhere.

* Solution: Ensure that the variable names are not repeated.

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

* seekdb error code: 9530

* Cause: The modifier for the `SELF` parameter must be `IN` or `IN OUT`, not any other modifier.

* Solution: Modify the modifier to meet the requirements.

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

* seekdb error code: 9531

* Cause: The `MAP` function must return a scalar value, not a complex type.

* Solution: Modify the return value type of the function.

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

* seekdb error code: 9532

* Cause: The `MAP` function has only one parameter, `SELF` (which can be explicitly or implicitly defined).

* Solution: Remove any extra parameters.

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

* seekdb error code: 9533

* Cause: The `ORDER` function must return an integer.

* Solution: Modify the return value type of the function.

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

* seekdb error code: 9534

* Cause: The parameter type of the `ORDER` function must be the type of the containing object.

* Solution: Modify the parameter type.

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

* seekdb error code: 9535

* Cause: In SQL statements, without a `MAP` or `ORDER` function, only equality comparisons are allowed.

* Solution: Add a `MAP` or `ORDER` function, or only perform equality comparisons.

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

* seekdb error code: 9537

* Cause: The modifier for the parameters of the `ORDER` function must be `IN`.

* Solution: Modify the parameter modifier.

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

* seekdb error code: 9538

* Cause: The `ORDER` function must define a parameter in addition to the `SELF` parameter.

* Solution: Define an additional parameter of the containing type.

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

* seekdb error code: 9539

* Cause: The types are mutually recursive.

* Solution: Resolve the recursive reference issue.

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

* seekdb error code: 9540

* Cause: An exception is generated by the `$ERROR` instruction, which is expected.

* Solution: No action is required.

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

* seekdb error code: 9541

* Cause: The `RETURN` statement in a `CONSTRUCTOR` function cannot include any expressions.

* Solution: Remove the expression after `RETURN`.

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

* seekdb error code: 9542

* Cause: During a subroutine call, the appropriate function could not be found. This could be due to an incorrect function name, an incorrect number of parameters, or a mismatch in parameter types.

* Solution: Check the function name, the number of parameters, and the parameter types. If the issue persists, check the function's access scope.

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

* seekdb error code: 9543

* Cause: The type modifier in a declaration or expression is not a valid type. For example, `%type` or `%rowtype` might be missing.

* Solution: Modify the modifier to be a valid type.

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

* seekdb error code: 9544

* Cause: Multiple function calls match. The called function may have multiple matching call methods, but none can be precisely matched.

* Solution: Check the function name and parameter types.

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

* seekdb error code: 9694

* Cause: A duplicate item appears in the condition definition.

* Solution: Remove the duplicate item from the condition definition.

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

* seekdb error code: 9695

* Cause: A user-defined condition is used.

* Solution: Do not use undefined conditions.

## 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

* seekdb error code: 9743
* Compatible MySQL error code: 1357

## ERROR 9747 (HY000) : malformed ps packet

* seekdb error code: 9747
* Error cause: The format of the prepared statement (prepared statement) data packet sent by the client is incorrect.
* Solution: Check whether the versions of the client and server are compatible and ensure that the versions of the client and server match.

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

* seekdb error code: 9749
* Error cause: The requested object does not exist.
* Solution: Check whether the name of the requested object is correct and confirm whether the object can be found.

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

* seekdb error code: 9750
* Error cause: When a PL/SQL table is used, the index exceeds the range of the array.
* Solution: Ensure that the value of the index does not exceed the range of the array.

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

* seekdb error code: 9754

* Error cause: The `debug_session_id` does not exist.

* Solution: Check whether the session ID exists.

## ERROR 9760 (HY000): cannot fast refresh materialized view %s: %s

* seekdb error code: 9760

* Error cause: The basic requirements for creating an incrementally refreshed materialized view are not met. For example:

  * The base table in the definition of the incrementally refreshed materialized view does not have a materialized view log (mlog) table.
  * The definition of the incrementally refreshed materialized view does not support the use of set operators.
  * The columns used in the incrementally refreshed materialized view must be maintained in the mlog of the base table.

* Solution: Check whether the definition of the incrementally refreshed materialized view meets the basic requirements for incremental refresh. For more information about the basic requirements for incremental refresh, see [Refresh a materialized view](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002016850).

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

* seekdb error code: 9762

* Compatible MySQL error code: 3948

* Error cause: The import of local data failed.

* Solution: If you want to use the load data local feature, ensure that:

  * The version of the OBJDBC driver is not earlier than 2.4.8 (if you use Java and the OBJDBC driver).

  * You use the native client of MySQL or MariaDB, and no special version is required.

  * You add the `--local-infile` parameter to the command line when you connect to the database by using the MySQL/MariaDB client.

    If the version is correct, set the `local_infile` variable to ON:

    * Enable the variable.

        ```shell
        set @@local_infile=1;
        ```

    * Check the variable.

        ```shell
        show variables like 'local_infile';
        ```

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

* seekdb error code: 9765

* Error cause: The object '%.*s' must be of the function or array type to be used in this way.

* Solution: Check the type of the object and adjust it as needed.

## ERROR 9783 (HY000) : cannot ENABLE ON QUERY COMPUTATION for the materialized view $mview_name: $detail

* seekdb error code: 9783

* Error cause: The definition of the materialized view does not meet the requirements for real-time materialized views. For more information, see the `$detail` section.

* Solution: Make the corresponding adjustments based on the `$detail` section.

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

* seekdb error code: 9808

* Error cause: The type of the table referenced in the definition of the materialized view is invalid.

* Solution: Check the type of the object referenced in the definition of the materialized view. The definition of the materialized view can only reference user tables or other materialized views.

## 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

* seekdb error code: 9809

* Error cause: During the creation or complete refresh of materialized views, DDL operations are being performed on the base tables.

* Solution: Check whether DDL operations are being performed on the base tables of the materialized view.

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

* seekdb error code: 9810

* Error cause: The dependency information of the materialized view `%s` is invalid.

* Solution: Perform a complete refresh on the materialized view.

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

* seekdb error code: 20000

* Error cause: A user-defined exception is generated by calling the `RAISE_APPLICATION_ERROR` procedure. This error code is an implicit code. The actual error code specified by the user takes precedence. The user-specified error code range specified by the `RAISE_APPLICATION_ERROR` procedure is between 20000 and 20999.

* Solution: User-defined exceptions are explicitly thrown by users and do not require any handling.

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

* seekdb error code: 21000

* Error cause: The error code range specified by the `RAISE_APPLICATION_ERROR` procedure is incorrect. The user-specified error code range must be between 20000 and 20999.

* Solution: Adjust the error code range to between 20000 and 20999.

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

* seekdb error code: 32491

* Error cause: A SNAPSHOT expression cannot be used in this context. A SNAPSHOT expression is supported only for read-only statements.

* Solution: Remove the SNAPSHOT expression or modify the statement to be read-only.