OceanBase logo

OceanBase

A unified distributed database ready for your transactional, analytical, and AI workloads.

DEPLOY YOUR WAY

OceanBase Cloud

The best way to deploy and scale OceanBase

OceanBase Enterprise

Run and manage OceanBase on your infra

TRY OPEN SOURCE

OceanBase Community Edition

The free, open-source distributed database

OceanBase seekdb

Open source AI native search database

Customer Stories

Real-world success stories from enterprises across diverse industries.

View All
BY USE CASES

Mission-Critical Transactions

Global & Multicloud Application

Elastic Scaling for Peak Traffic

Real-time Analytics

Active Geo-redundancy

Database Consolidation

Resources

Comprehensive knowledge hub for OceanBase.

Blog

Live Demos

Training & Certification

Documentation

Official technical guides, tutorials, API references, and manuals for all OceanBase products.

View All
PRODUCTS

OceanBase Cloud

OceanBase Database

Tools

Connectors and Middleware

QUICK START

OceanBase Cloud

OceanBase Database

BEST PRACTICES

Practical guides for utilizing OceanBase more effectively and conveniently

Company

Learn more about OceanBase – our company, partnerships, and trust and security initiatives.

About OceanBase

Partner

Trust Center

Contact Us

International - English
中国站 - 简体中文
日本 - 日本語
Sign In
Start on Cloud

A unified distributed database ready for your transactional, analytical, and AI workloads.

DEPLOY YOUR WAY

OceanBase Cloud

The best way to deploy and scale OceanBase

OceanBase Enterprise

Run and manage OceanBase on your infra

TRY OPEN SOURCE

OceanBase Community Edition

The free, open-source distributed database

OceanBase seekdb

Open source AI native search database

Customer Stories

Real-world success stories from enterprises across diverse industries.

View All
BY USE CASES

Mission-Critical Transactions

Global & Multicloud Application

Elastic Scaling for Peak Traffic

Real-time Analytics

Active Geo-redundancy

Database Consolidation

Comprehensive knowledge hub for OceanBase.

Blog

Live Demos

Training & Certification

Documentation

Official technical guides, tutorials, API references, and manuals for all OceanBase products.

View All
PRODUCTS
OceanBase CloudOceanBase Database
ToolsConnectors and Middleware
QUICK START
OceanBase CloudOceanBase Database
BEST PRACTICES

Practical guides for utilizing OceanBase more effectively and conveniently

Learn more about OceanBase – our company, partnerships, and trust and security initiatives.

About OceanBase

Partner

Trust Center

Contact Us

Start on Cloud
编组
All Products
    • Databases
    • iconOceanBase Database
    • iconOceanBase Cloud
    • iconOceanBase Tugraph
    • iconInteractive Tutorials
    • iconOceanBase Best Practices
    • Tools
    • iconOceanBase Cloud Platform
    • iconOceanBase Migration Service
    • iconOceanBase Developer Center
    • iconOceanBase Migration Assessment
    • iconOceanBase Admin Tool
    • iconOceanBase Loader and Dumper
    • iconOceanBase Deployer
    • iconKubernetes operator for OceanBase
    • iconOceanBase Diagnostic Tool
    • iconOceanBase Binlog Service
    • Connectors and Middleware
    • iconOceanBase Database Proxy
    • iconEmbedded SQL in C for OceanBase
    • iconOceanBase Call Interface
    • iconOceanBase Connector/C
    • iconOceanBase Connector/J
    • iconOceanBase Connector/ODBC
    • iconOceanBase Connector/NET
icon

OceanBase Database

SQL - V4.2.1

    Download PDF

    OceanBase logo

    The Unified Distributed Database for the AI Era.

    Follow Us
    Products
    OceanBase CloudOceanBase EnterpriseOceanBase Community EditionOceanBase seekdb
    Resources
    DocsBlogLive DemosTraining & Certification
    Company
    About OceanBaseTrust CenterLegalPartnerContact Us
    Follow Us

    © OceanBase 2026. All rights reserved

    Cloud Service AgreementPrivacy PolicySecurity
    Contact Us
    Document Feedback
    1. Documentation Center
    2. OceanBase Database
    3. SQL
    4. V4.2.1
    iconOceanBase Database
    SQL - V 4.2.1
    SQL
    KV
    • V 4.4.2
    • V 4.3.5
    • V 4.3.3
    • V 4.3.1
    • V 4.3.0
    • V 4.2.5
    • V 4.2.2
    • V 4.2.1
    • V 4.2.0
    • V 4.1.0
    • V 4.0.0
    • V 3.1.4 and earlier

    9500 - 9999

    Last Updated:2023-12-25 08:49:40  Updated
    share
    What is on this page
    ERROR 9502 (HY000): OUT and IN/OUT modes cannot be used in this context
    ERROR 9503 (HY000): object '%.*s' of type %.*s not found in schema '%.*s'
    ERROR 9506 (HY000): Only schema-level programs allow %s
    ERROR 9507 (HY000): at most one declaration for '%.*s' is permitted
    ERROR 9508 (HY000): duplicate fields in RECORD,TABLE or argument list are not permitted
    ERROR 9509 (HY000): Pragma AUTONOMOUS_TRANSACTION cannot be specified here
    ERROR 9510 (HY000): illegal EXIT/CONTINUE statement; it must appear inside a loop
    ERROR 9512 (HY000): EXIT/CONTINUE label '%.*s' must label a LOOP statement
    ERROR 9513 (HY000): expression '%.*s' is inappropriate as the left hand side of an assignment statement
    ERROR 9514 (HY000): a variable declared NOT NULL must have an initialization assignment
    ERROR 9515 (HY000): Constant declarations should contain initialization assignments
    ERROR 9516 (HY000): Cursor Variables cannot be declared as part of a package
    ERROR 9518 (HY000): value in LIMIT clause: \'%.*s\' use is invalid
    ERROR 9519 (HY000): expression is of wrong type
    ERROR 9520 (HY000): cannot compile body of '%.*s' without its specification
    ERROR 9521 (HY000): subprogram '%.*s' is declared in an object type body and must be defined in the object type specification
    ERROR 9522 (HY000): subprogram or cursor '%.*s' is declared in an object type specification and must be defined in the object type body
    ERROR 9523 (HY000): An object type may have only 1 MAP or 1 ORDER method
    ERROR 9524 (HY000): A MAP or ORDER function is required for comparing objects in PL/SQL
    ERROR 9525 (HY000): Only a function may be a MAP, ORDER or CONSTRUCTOR method
    ERROR 9526 (HY000): identifier '%.*s' too long
    ERROR 9527 (HY000): a static method cannot be invoked on an instance value
    ERROR 9528 (HY000): constructor method name must match type name
    ERROR 9529 (HY000): previous use of '%.*s' conflicts with this use
    ERROR 9530 (HY000): the SELF parameter can be declared only as IN or as IN OUT
    ERROR 9531 (HY000): MAP methods must return a scalar type
    ERROR 9532 (HY000): MAP methods must be declared without any parameters other than (optional) SELF
    ERROR 9533 (HY000): ORDER methods must return an INTEGER
    ERROR 9534 (HY000): The parameter type in an ORDER method must be the containing object type
    ERROR 9535 (HY000): Within SQL statements, only equality comparisons of objects are allowed without a map or order function
    ERROR 9537 (HY000): The parameters to an ORDER function must have IN mode
    ERROR 9538 (HY000): ORDER methods must be declared with 1 (one) parameter in addition to (optional) SELF
    ERROR 9539 (HY000): type '%.*s' is malformed because it is a non-REF mutually recursive type
    ERROR 9540 (HY000): $ERROR: %.*s
    ERROR 9541 (HY000): RETURN statement in a CONSTRUCTOR cannot include an expression
    ERROR 9542 (HY000): wrong number or types of arguments in call to '%.*s'
    ERROR 9543 (HY000): '%.*s' must be a type
    ERROR 9544 (HY000): too many declarations of '%.*s' match this call
    ERROR 9694 (42000): Duplicate condition information item '%s'
    ERROR 9695 (02000): Unhandled user-defined not found 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
    ERROR 9747 (HY000): malformed ps packet
    ERROR 9749 (HY000): object does not exist
    ERROR 9750 (HY000): PL/SQL: index for PL/SQL table out of range for host language array
    ERROR 20000 (HY000): The stored procedure 'raise_application_error' was called which causes this error to be generated","-%05ld: %.*s
    ERROR 21000 (HY000): error number argument to raise_application_error of '%d' is out of range
    ERROR 32491 (HY000): snapshot expression not allowed here

    folded

    share

    These error codes indicate Procedural Language (PL) errors.

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

    • OceanBase error code: 9502

    • Cause: The OUT keyword can be used in a dynamic DML statement only when the statement contains the returning variable but not the INTO keyword.

    • Solution: Check whether the current statement syntax supports the OUT keyword.

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

    • OceanBase error code: 9503

    • Cause: No object identified by the specified type and name exists.

    • Solution: Specify a valid object type and a valid object name.

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

    • OceanBase error code: 9506

    • Cause: The INVOKER RIGHT clause can be defined only in a standalone procedure or function.

    • Solution: Delete the INVOKER RIGHT clause.

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

    • OceanBase error code: 9507

    • Cause: Duplicate identifiers exist in the same namespace.

    • Solution: Make sure that identifiers in the same namespace are unique.

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

    • OceanBase error code: 9508

    • Cause: Duplicate parameters are specified in PL statements.

    • Solution: Make sure that parameters in PL statements are unique.

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

    • OceanBase error code: 9509

    • Cause: The current location of the autonomous transaction clause is not allowed. The clause can be placed only in a block at the first layer.

    • Solution: Adjust the location of the autonomous transaction clause.

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

    • OceanBase error code: 9510

    • Cause: The EXIT or CONTINUE clause is not used inside a loop.

    • Solution: Make sure that the EXIT or CONTINUE clause is used inside a loop.

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

    • OceanBase error code: 9512

    • Cause: The destination label of the EXIT or CONTINUE clause is invalid.

    • Solution: Make sure that 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

    • OceanBase error code: 9513

    • Cause: A static cursor cannot be used to assign a value.

    • Solution: Make sure that the assignment statement is valid.

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

    • OceanBase error code: 9514

    • Cause: A variable with the NOT NULL constraint is not explicitly initialized.

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

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

    • OceanBase error code: 9515

    • Cause: A constant variable is not explicitly initialized.

    • Solution: Remove the constant declaration or explicitly initialize the variable.

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

    • OceanBase error code: 9516

    • Cause: Cursor variables cannot be declared in a package.

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

    • OceanBase error code: 9518

    • Cause: 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

    • OceanBase error code: 9519

    • Cause: The result data type of the expression is invalid.

    • Solution: Check the result data type of the expression.

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

    • OceanBase error code: 9520

    • Cause: The specification of the user-defined type (UDT) is not declared.

    • Solution: Declare the specification.

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

    • OceanBase error code: 9521

    • Cause: The function definition of the object is not declared in the specification.

    • Solution: Declare the function in the specification.

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

    • OceanBase error code: 9522

    • Cause: The subprogram or cursor of the object is declared in the specification. It must be defined in the body.

    • Solution: Delete or define the declaration.

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

    • OceanBase error code: 9523

    • Cause: One MAP function and one ORDER function are defined together. Only one MAP or one ORDER function can be defined for an object type.

    • Solution: Retain only one of the MAP and ORDER functions.

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

    • OceanBase error code: 9524

    • Cause: No MAP or ORDER function is defined for comparing object types in PL statements.

    • Solution: Define an appropriate MAP or ORDER comparison function.

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

    • OceanBase error code: 9525

    • Cause: The MAP, ORDER, or CONSTRUCTOR method is not defined as a function.

    • Solution: Modify the definition and rewrite the code.

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

    • OceanBase error code: 9526

    • Cause: The label name is too long. It can be up to 128 characters in length.

    • Solution: Modify the label name.

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

    • OceanBase error code: 9527

    • Cause: An instance cannot invoke static functions.

    • Solution: Modify the invocation method to invoke functions by type name.

    ERROR 9528 (HY000): constructor method name must match type name

    • OceanBase error code: 9528

    • Cause: The constructor name is not the same as the type name.

    • Solution: Make sure that the constructor name is the same as the type name.

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

    • OceanBase error code: 9529

    • Cause: A name conflict occurred. For example, variables of different types have duplicate names.

    • Solution: Make sure that each variable name is unique.

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

    • OceanBase error code: 9530

    • Cause: The modifier of the SELF parameter must be IN or IN OUT.

    • Solution: Modify the modifier as required.

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

    • OceanBase error code: 9531

    • Cause: A MAP function must return scalar values but not complex values.

    • Solution: Change the type of returned values.

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

    • OceanBase error code: 9532

    • Cause: A MAP function can contain only the SELF parameter. The SELF parameter can be explicitly or implicitly defined.

    • Solution: Remove the excess parameters.

    ERROR 9533 (HY000): ORDER methods must return an INTEGER

    • OceanBase error code: 9533

    • Cause: An ORDER function must return integers.

    • Solution: Change the type of returned values.

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

    • OceanBase error code: 9534

    • Cause: The parameter type of an ORDER function must be the same as the corresponding object type.

    • Solution: Change the parameter type.

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

    • OceanBase error code: 9535

    • Cause: Only equality comparison is allowed because the SQL statement contains no MAP or ORDER function.

    • Solution: Add a MAP function or an ORDER function, or perform only equality comparison.

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

    • OceanBase error code: 9537

    • Cause: The parameter modifier of an 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

    • OceanBase error code: 9538

    • Cause: An ORDER function cannot contain only the SELF parameter.

    • Solution: Define a parameter of the required type in addition to the SELF parameter.

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

    • OceanBase error code: 9539

    • Cause: The type encountered a recursive reference.

    • Solution: Remove the recursive reference.

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

    • OceanBase error code: 9540

    • Cause: The $ERROR instruction triggered an expected error.

    • Solution: Troubleshooting is not required.

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

    • OceanBase error code: 9541

    • Cause: The RETURN statement of the CONSTRUCTOR function cannot contain any expression.

    • Solution: Remove the expression from the RETURN statement.

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

    • OceanBase error code: 9542

    • Cause: No matching function was found when the subprocedure was called because the function name, number of parameters, or the parameter type is invalid.

    • Solution: Check the specified function name, number of parameters, and parameter type. If the error persists, check the access scope of the function.

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

    • OceanBase error code: 9543

    • Cause: The type modifier used in the declaration or expression is invalid. For example, %type or %rowtype is missing.

    • Solution: Modify the type modifier as required.

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

    • OceanBase error code: 9544

    • Cause: Multiple function invocation methods are matched. This may be because multiple function invocation methods exist for the function to be invoked and no method can be exactly matched.

    • Solution: Make sure that the function name and parameter type are valid.

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

    • OceanBase error code: 9694

    • Cause: The definition of condition contains duplicate items.

    • Solution: Remove duplicate items from the definition of the condition.

    Note

    This error code is introduced since OceanBase Database V4.0.0.

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

    • OceanBase error code: 9695

    • Cause: Undefined conditions are used.

    • Solution: Use only defined conditions.

    Note

    This error code is introduced since OceanBase Database V4.0.0.

    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 error code: 9743
    • MySQL error code: 1357

    Note

    This error code is introduced since OceanBase Database V4.1.0.

    ERROR 9747 (HY000): malformed ps packet

    • OceanBase error code: 9747
    • Cause: The format of the prepared statement packets sent by the client is invalid.
    • Solution: Make sure that the version of the client matches that of the server.

    Note

    This error code is introduced since OceanBase Database V4.2.0.

    ERROR 9749 (HY000): object does not exist

    • OceanBase error code: 9749
    • Cause: The requested object does not exist.
    • Solution: Make sure that the specified name of the requested object is correct.

    Note

    This error code is introduced since OceanBase Database V4.2.0.

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

    • OceanBase error code: 9750
    • Cause: When you use a PL/SQL table, the index values exceed the value range of the array.
    • Solution: Make sure that the values of the index do not exceed the value range of the array.

    Note

    This error code is introduced since OceanBase Database V4.2.0.

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

    • OceanBase error code: 20000

    • Cause: The RAISE_APPLICATION_ERROR procedure was called. This error code is implicit and is specified by a user. Error codes that identify the RAISE_APPLICATION_ERROR procedure range from 20000 to 20999.

    • Solution: This user-defined error is explicitly thrown by a user, and troubleshooting is not required.

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

    • OceanBase error code: 21000

    • Cause: The user-defined error code for the RAISE_APPLICATION_ERROR procedure is invalid. The error code must range from 20000 to 20999.

    • Solution: Specify an error code within the range of 20000 to 20999.

    ERROR 32491 (HY000): snapshot expression not allowed here

    • OceanBase error code: 32491

    • Cause: The SNAPSHOT expression is not allowed in the current statement. The expression can be used only in a read-only statement.

    • Solution: Remove the SNAPSHOT expression or set the statement to be a read-only statement.

    Previous topic

    9000 - 9499
    Last

    Next topic

    22998, 30926, 38104, and 38105
    Next
    What is on this page
    ERROR 9502 (HY000): OUT and IN/OUT modes cannot be used in this context
    ERROR 9503 (HY000): object '%.*s' of type %.*s not found in schema '%.*s'
    ERROR 9506 (HY000): Only schema-level programs allow %s
    ERROR 9507 (HY000): at most one declaration for '%.*s' is permitted
    ERROR 9508 (HY000): duplicate fields in RECORD,TABLE or argument list are not permitted
    ERROR 9509 (HY000): Pragma AUTONOMOUS_TRANSACTION cannot be specified here
    ERROR 9510 (HY000): illegal EXIT/CONTINUE statement; it must appear inside a loop
    ERROR 9512 (HY000): EXIT/CONTINUE label '%.*s' must label a LOOP statement
    ERROR 9513 (HY000): expression '%.*s' is inappropriate as the left hand side of an assignment statement
    ERROR 9514 (HY000): a variable declared NOT NULL must have an initialization assignment
    ERROR 9515 (HY000): Constant declarations should contain initialization assignments
    ERROR 9516 (HY000): Cursor Variables cannot be declared as part of a package
    ERROR 9518 (HY000): value in LIMIT clause: \'%.*s\' use is invalid
    ERROR 9519 (HY000): expression is of wrong type
    ERROR 9520 (HY000): cannot compile body of '%.*s' without its specification
    ERROR 9521 (HY000): subprogram '%.*s' is declared in an object type body and must be defined in the object type specification
    ERROR 9522 (HY000): subprogram or cursor '%.*s' is declared in an object type specification and must be defined in the object type body
    ERROR 9523 (HY000): An object type may have only 1 MAP or 1 ORDER method
    ERROR 9524 (HY000): A MAP or ORDER function is required for comparing objects in PL/SQL
    ERROR 9525 (HY000): Only a function may be a MAP, ORDER or CONSTRUCTOR method
    ERROR 9526 (HY000): identifier '%.*s' too long
    ERROR 9527 (HY000): a static method cannot be invoked on an instance value
    ERROR 9528 (HY000): constructor method name must match type name
    ERROR 9529 (HY000): previous use of '%.*s' conflicts with this use
    ERROR 9530 (HY000): the SELF parameter can be declared only as IN or as IN OUT
    ERROR 9531 (HY000): MAP methods must return a scalar type
    ERROR 9532 (HY000): MAP methods must be declared without any parameters other than (optional) SELF
    ERROR 9533 (HY000): ORDER methods must return an INTEGER
    ERROR 9534 (HY000): The parameter type in an ORDER method must be the containing object type
    ERROR 9535 (HY000): Within SQL statements, only equality comparisons of objects are allowed without a map or order function
    ERROR 9537 (HY000): The parameters to an ORDER function must have IN mode
    ERROR 9538 (HY000): ORDER methods must be declared with 1 (one) parameter in addition to (optional) SELF
    ERROR 9539 (HY000): type '%.*s' is malformed because it is a non-REF mutually recursive type
    ERROR 9540 (HY000): $ERROR: %.*s
    ERROR 9541 (HY000): RETURN statement in a CONSTRUCTOR cannot include an expression
    ERROR 9542 (HY000): wrong number or types of arguments in call to '%.*s'
    ERROR 9543 (HY000): '%.*s' must be a type
    ERROR 9544 (HY000): too many declarations of '%.*s' match this call
    ERROR 9694 (42000): Duplicate condition information item '%s'
    ERROR 9695 (02000): Unhandled user-defined not found 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
    ERROR 9747 (HY000): malformed ps packet
    ERROR 9749 (HY000): object does not exist
    ERROR 9750 (HY000): PL/SQL: index for PL/SQL table out of range for host language array
    ERROR 20000 (HY000): The stored procedure 'raise_application_error' was called which causes this error to be generated","-%05ld: %.*s
    ERROR 21000 (HY000): error number argument to raise_application_error of '%d' is out of range
    ERROR 32491 (HY000): snapshot expression not allowed here