E10001-E10999
📄字数 9.4K
👁️阅读量 加载中...
当前页面错误码为过程函数相关错误码。
注意
%s,%d是C语言中的格式化输出符,会根据输入的值自动填充
E10002:函数%s的返回类型不正确
错误原因:
- 使用 JSON_VALUE 函数时 RETURNING 子句指定的数据类型不支持。
分析与建议:
- 使用 JSON_VALUE 支持的数据类型,详细类型见 JSON_VALUE 函数说明。
E10003:统计函数%s的参数不能含统计函数
错误原因:
- 由于在 SQL 查询中非法嵌套统计函数。
分析与建议:
- 如果查询过程中有多层聚合需求可以使用子查询或者 WITH 查询方式,避免在聚合函数中嵌套聚合。
E10004:OVERLAPS的左边参数个数不正确
E10005:OVERLAPS的右边参数个数不正确
E10008:字段%s对应的数据类型上无比较函数
错误原因:
- 大对象做排序字段、连接键、分区键、索引键、聚合参数、表字段分析时抛出的错误。
分析与建议:
- 不使用大对象字段做排序字段、连接键、分区键、索引键、聚合参数、表字段分析等操作。
E10009:因无比较函数,分组无法实现
错误原因:
- 不支持大对象字段作为分组字段则抛出该错误。
分析与建议:
- 不使用大对象字段作为分组字段。
E10010:过程嵌套级数不能超过%d级
错误原因:
- 存储过程或存储函数嵌套定义大于等于 100。
分析与建议:
- 当存储过程或存储函数的嵌套定义层级达到或超过 100 层时,可维护性差,建议将深层嵌套逻辑拆分为多个独立模块使用。
E10011:类型%s无比较函数
错误原因:
- 子查询时会分析比较项,将比较项的左右表达式进行强类型转换找出各比较项的公共类型,再根据公共类型收集比较函数,若公共类型无比较函数则抛出该错误,如 CLOB 等大对象类型。
分析与建议:
- 显式转换为 VARCHAR 等普通数据类型或不使用大对象类型作为子查询等连接键。
E10012:过程或函数%s不存在
错误原因:
- 执行的存储过程或包未创建或已被删除。
分析与建议:
- 查询系统视图 DBA_PROCEDURES 或 DBA_PACKAGES 获取执行的过程或包是否存在。
- 确认对象名大小写是否匹配。
- 确认对象名是否有特殊字符未正确转义。
E10015:过程调用%s的形实参数类型不兼容
错误原因:
- 由于实际传入的参数类型与过程定义的参数类型无法正确匹配或转换,数据库中未定义类型转换器导致。
分析与建议:
- 显式类型转换使得传入的参数类型和定义类型一致或可隐式转换。
- 传入参数时指定参数名称防止传入参数和定义参数不匹配。
E10017:过程%s已声明
错误原因:
- 在数据库包编译过程中出现同一个包头内存在多个同名的过程(函数)定义。
分析与建议:
- 不支持存储过程(函数)重载的数据库版本中包定义不出现同名的过程(函数)。
E10019:调用函数%s实参数量与形参数量不一致
错误原因:
- 调用过程时传入的实际参数数量与函数定义的形参数量不匹配导致的。
分析与建议:
- 通过系统视图查询过程定义,调用时提供了正确数量的参数。
E10020:参数%s未传入
错误原因:
- PREPARE 按名传参时未传入参数。
分析与建议:
- 若执行语句带有参数则执行语句前先设置参数值。
E10021:参数(序号=%d)未传入
错误原因:
- 按位传参时未传入参数。
分析与建议:
- 若执行语句带有参数则执行语句前先设置参数值。
E10022:过程调用不能返回%s类型的数据
错误原因:
- 使用调用存储过程方式执行存储函数,其存储函数返回值类型为自定义类型或数据库中定义的 type_id > 100 的类型。
分析与建议:
- 使用正确的方式调用存储函数。
E10023:游标%s形实参数个数不相等
错误原因:
- 调用带参游标时传入的实际参数数量与游标定义的形参数量不匹配导致的。
分析与建议:
- 调用游标时提供正确数量的参数。
E10024:游标%s的形实参数类型不兼容
错误原因:
- 由于实际传入的参数类型与游标定义的参数类型无法正确匹配或转换。
分析与建议:
- 显式类型转换使得传入的参数类型和定义类型一致或可隐式转换。
E10026:形实参数个数不相等
错误原因:
- 调用存储函数的参数个数与定义不相等。
分析与建议:
- 通过系统视图查询函数定义,调用时提供正确数量的参数。
E10027:实参数太少
错误原因:
- 调用系统函数参数数量不够且当前调用系统函数带有默认值。
分析与建议:
- 调用系统函数时提供正确数量的参数,可查询 DBA_METHODS 系统视图获取函数参数信息。
E10030:过程语言名%s错误
错误原因:
- 修改连接会话参数 LANGUAGE 为不支持语言。
分析与建议:
- 会话连接参数 LANGUAGE 只支持 PL/SQL 则无需修改当前连接会话参数。
E10032:命令参数个数错误,%s
错误原因:
- 参数个数太大,给定参数个数大于系统参数 prepare_param_num 或参数个数大于 32K 或参数和组数的积大于 3200K。
分析与建议:
- 参数个数小于等于系统参数 prepare_param_num 。
E10033:过程名%s与结尾名%s不相同
错误原因:
- 过程或函数 END 后的结尾名和定义名称不一致。
分析与建议:
- 定义名称和结尾名成对出现时应保持一致(结尾名可以忽略不写)。
E10034:参数错误
错误原因:
- 调用函数、过程、包时参数不满足对应条件。
分析与建议:
- 调用函数、过程、包时提供正确的参数信息。
E10035:实际参数个数太少
错误原因:
- 参数数量不够。
分析与建议:
- 调用时提供正确数量的参数。
E10036:未传入参数%s
错误原因:
- 按名传参时未给定参数。
分析与建议:
- 提供正确的参数信息。
E10037:参数序号不能小于1
错误原因:
- 参数序号小于 1。
分析与建议:
- 提供正确的参数序号。
E10039:Least 函数的参数无公共数据类型
错误原因:
- LEAST 函数传入的参数类型无法正确匹配或转换为公共类型。
分析与建议:
- 传入正确的参数同 LEAST 定义的函数有公共数据类型。
E10040:Least函数的参数公共类型%s无比较函数
错误原因:
- LEAST 函数传入的参数类型的公共类型无比较函数。
分析与建议:
- 若参数无比较函数则不使用 LEAST 函数。
E10042:Greatest函数的参数无公共数据类型
错误原因:
- GREATEST 函数传入的参数类型无法正确匹配或转换为公共类型。
分析与建议:
- 传入正确的参数同 GREATEST 定义的函数有公共数据类型。
E10043:Greatest函数的参数公共类型%s无比较函数
错误原因:
- GREATEST 函数传入的参数类型的公共类型无比较函数。
分析与建议:
- 若参数无比较函数则不使用 GREATEST 函数。
E10044:统计函数%s的参数不能是统计函数
错误原因:
- 统计函数嵌套统计函数。
分析与建议:
- 如果查询过程中有多层聚合需求可以使用子查询或者 WITH 查询方式,避免在聚合函数中嵌套聚合。
E10047:未传入参数%d
错误原因:
- 数据库不支持 PREPARE 在 DDL 中使用参数绑定。
分析与建议:
- DDL 语句使用 PREPARE 方式执行不带参数,可使用动态 SQL 拼接。
E10048:参数%s的类型错误
错误原因:
- 未经定义的类型作为参数或给定参数不满足参数定义。
分析与建议:
- 传入正确的参数类型。
E10049:字段变量或函数%s不存在
错误原因:
- 指定的函数或字段变量名不存在。
分析与建议:
- 查询系统视图 DBA_PROCEDURES 获取执行的函数是否存在。
- 确认对象名大小写是否匹配。
- 确认对象名是否有特殊字符未正确转义。
E10053:类型%s不含名为%s的构造函数或静态函数
错误原因:
- PL/SQL 中赋值表达式的右支给定的自定义类型中不存在指定的构造函数或静态函数。
分析与建议:
- 查询系统视图 DBA_TYPES 确认给定的自定义类型是否存在指定的构造函数和静态函数。
E10054:数组构造函数%s参数类型不正确
错误原因:
- 调用自定义 VARRAY 类型给定的参数自定义 VARRAY 不支持。
分析与建议:
- 使用自定义 VARRAY 支持的数据类型。
E10055:数组构造函数%s参数个数不正确
错误原因:
- 调用自定义 VARRAY 类型给定的参数同 VARRAY 数组的指定容量不一致。
分析与建议:
- 调用 VARRAY 类型给定的参数同 VARRAY 数组的指定容量一致。
E10056:new或old只能在过程或触发器中使用
错误原因:
- 在非过程和触发器中使用 NEW 或 OLD 关键字。
分析与建议:
- 非过程和触发器中不使用 NEW 或 OLD 关键字。
E10057:update语句中不能使用统计函数
错误原因:
- 更新语句中使用了统计函数。
分析与建议:
- 更新语句中不使用统计函数,如需统计数据更新字段可使用子查询进行更新。
E10058:过程(函数)%s的参数出现重名
错误原因:
- 过程(函数)定义的参数名称相同。
分析与建议:
- 同一过程(函数)定义的参数名唯一。
E10059:暂不支持外部库函数存储过程
错误原因:
- 定义过程函数时使用了外部库。
分析与建议:
- 暂不支持的功能。
E10060:本地函数%s未定义
错误原因:
- 创建过程函数指定 C 语言时使用未定义的函数。
分析与建议:
- 高频使用可反馈厂家定义相关函数,若可以使用 PL/SQL 代替则转换为相应 PL/SQL 语言。
E10061:不支持(%s)语言存储过程
错误原因:
- 创建过程函数给定语言为数据库不支持语言。
分析与建议:
- 若无特殊需求创建过程函数不需要特殊指定语言,使用 PL/SQL 重写即可。
E10062:存储过程中的Fetch语句必须指定INTO变量名
错误原因:
- 使用 FETCH 获取游标中的数据时未指定 INTO。
分析与建议:
- 使用正确 FETCH 语法,详细 FETCH 语法参照语法树 FetchStmt。
E10064:Execute immedate语句的参数必须是字符串类型
错误原因:
- PL/SQL 中 EXECUTE IMMEDIATE 语句的参数必须是字符串类型,但实际传入了其他类型数据。
分析与建议:
- 将动态SQL语句和绑定变量都转换为字符串形式再使用 EXECUTE IMMEDIATE。
E10065:函数的第%d个参数错误
错误原因:
- 调用函数时传入的参数类型、数量或顺序与函数定义不匹配。
分析与建议:
- 检查函数声明并确保传入参数类型、数量和顺序完全一致。
E10066:Show语句不能出现在过程体中
错误原因:
- 在过程体中直接使用了 SHOW 命令。
分析与建议:
- 改用 DBMS_OUTPUT.PUT_LINE 输出变量值,或通过查询数据字典获取信息。
E10068:标签%s重复出现在同一过程或函数中
错误原因:
- 在同一个 PL/SQL 过程或函数中重复定义了相同的标签名称导致编译冲突。
分析与建议:
- 确保每个标签名称在作用域内唯一,修改重复的标签名或重构代码逻辑。
E10069:错误的参数表达式%s
错误原因:
- 参数表达式不符合语法规则或包含非法字符,导致无法正确解析。
分析与建议:
- 检查并修正参数表达式的格式,确保符合语法规范。
E10070:未提供参数%s
错误原因:
- 函数/过程调用时使用了占位符但未提供必需的参数,导致参数缺失错误。
分析与建议:
- 检查调用语句并补全所有必填参数。
E10071:未提供参数(序号=%d)
错误原因:
- 函数/过程调用时使用了占位符但未提供必需的参数,导致参数缺失错误。
分析与建议:
- 检查调用语句并补全所有必填参数。
E10073:命令参数与函数或过程的形式参数类型不一致
错误原因:
- 调用时传入的实参类型与函数/过程定义的形参类型不匹配。
分析与建议:
- 检查声明并修正参数类型。
E10074:函数调用%s的参数类型与定义不符
错误原因:
- 调用函数时传入的参数类型与函数定义的参数类型不匹配(如定义要求 NUMBER 但传入了 VARCHAR2)。
分析与建议:
- 检查函数定义并修正参数类型,或使用显式类型转换。
E10075:构造函数参数个数与记录类型%s的字段数不相等
错误原因:
- 记录类型赋值时与记录类型定义的字段数量不匹配,如 RECORD 定义 3 个字段构造函数只给定了 2 个参数。
分析与建议:
- 检查记录类型定义并确保参数数量一致。
E10076:构造函数参数类型与记录类型%s的字段类型不兼容
错误原因:
- 记录类型赋值时与记录类型定义的类型不一致且不可隐式转换为定义类型。
分析与建议:
- 检查记录类型定义并确保传入参数类型与其一致。
E10079:构造参数个数大于数组类型%s的界限
错误原因:
- 数组类型赋值时大于数组类型定义的容量,如 VARRAY 只定义3个容量构造函数给定了 4 个数据。
分析与建议:
- 检查数组类型定义并确保参数数量一致。
E10080:构造参数类型%s与数组类型%s的成员数据类型%s不兼容
错误原因:
- 数组类型赋值时与数组类型定义的类型不一致且不可隐式转换为定义类型。
分析与建议:
- 检查数组类型定义并确保传入参数类型与其一致。
E10082:参数%s未定义
错误原因:
- 参数赋值时参数不存在。
分析与建议:
- 检查指定参数名称是否正确。
E10084:参数(序号=%d)未定义
错误原因:
- 编译 PL/SQL 场景下,参数编号对应的参数不存在。
分析与建议:
- 确认参数数量是否正确。
E10085:构造函数只能返回SELF
错误原因:
- 对象类型的构造函数必须返回 SELF(即当前对象自身),不能返回其他类型或值。
分析与建议:
- 确保构造函数声明和实现中统一返回 SELF。
E10087:函数%s的返回语句缺少返回值
错误原因:
- 自定义类型中函数声明了返回值类型,但在创建结构类型体时使用 RETURN 但未有返回类型,导致编译错误。
分析与建议:
- 检查所有结构类型体确保每个函数都有返回值。
E10088:函数%s的返回类型与定义不符
错误原因:
- 自定义类型中函数声明了返回值类型,但在创建结构类型体时返回类型与定义不符,导致编译错误。
分析与建议:
- 检查所有结构类型体确保每个函数返回类型与定义一致。
E10090:存储过程中不支持Prepare语句
错误原因:
- 存储过程内部不支持直接使用 PREPARE 语句(该语法属于动态 SQL 的客户端命令,而非 PL/SQL 服务端语法)。
分析与建议:
- 在 PL/SQL 中使用动态 SQL 改写 PREPARE 语句。
E10096:update语句表达式中出现统计函数
错误原因:
- UPDATE 语句中出现了聚合函数。
分析与建议:
- UPDATE 语句中不支持使用聚合函数。
E10097:delete语句表达式中出现统计函数
错误原因:
- DELETE 语句中出现了聚合函数。
分析与建议:
- DELETE 语句中不支持使用聚合函数。
E10100:候选函数%s出现多义性,请指明参数类型
错误原因:
- 调用系统函数时参数类型存在隐式转换歧义(如存在多个重载函数,且传入参数可隐式转换为多种类型)。
分析与建议:
- 通过显式类型转换或指定参数带类型消除歧义。
E10101:变量%s初值不是常数
错误原因:
- 记录变量的初始化值使用了非常量表达式(如调用函数)。
分析与建议:
- 改用常量表达式初始化。
E10102:动态SQL返回值个数与目标变量个数不符合
错误原因:
- 动态 SQL 使用 RETUNING 返回个数与目标变量个数不一致。
分析与建议:
- 确保 INTO 语句的变量数与 DML 列数一致。
E10103:动态SQL返回值类型与目标变量类型不符合
错误原因:
- 动态 SQL 使用 RETUNING 返回类型与目标变量类型不一致。
分析与建议:
- 确保 INTO 语句的变量数与 DML 返回值类型一致。
E10108:非select型语句,不能执行DEFINE_COULMN或COLUMN_VALUE
错误原因:
- DBMS_SQL.DEFINE_COLUMN 和 DBMS_SQL.COLUMN_VALUE 仅适用于 SELECT 语句的动态游标处理,而当前执行的是非查询型语句(如 INSERT/UPDATE/DELETE)。
分析与建议:
- 对非查询语句改用 EXECUTE IMMEDIATE 或绑定变量方式。
E10109:输出字段%d查找失败
错误原因:
- DBMS_SQL.DEFINE_COLUMN 给定的输出字段号不存在。
分析与建议:
- 确认查询的表字段数,DEFINE_COLUMN 字段序号给定正确的值。
E10112:字段类型%s无比较函数不能进行IN过滤
错误原因:
- 字段类型(如 JSON/BLOB 等复杂类型)未定义比较函数,无法执行 IN 操作符所需的元素比对
分析与建议:
- 转换字段为可比较类型
E10114:编译指示 EXCEPTION_INIT 的错误号参数超出范围[1,99999]
错误原因:
- EXCEPTION_INIT 指定的错误号超出允许的自定义异常编号范围(有效范围为1-99999)。
分析与建议:
- 调整错误号至有效范围内(负数会被处理为正数则不会报错)。
E10115:绑定变量不存在
错误原因:
- 使用 DBMS_SQL 包 BIND_VARIABLE 绑定变量时由于错误操作未解析到有需要绑定的参数。
分析与建议:
- 检查 SQL 语句是否正确,变量是否清晰。
E10116:嵌套过程或函数名缺失
错误原因:
- 在嵌套过程或函数的定义/调用中缺少结束符或开始符导致语法不完整。
分析与建议:
- 确保嵌套结构或匿名过程正确定义和结束。
E10117:集合方法%s的参数个数或类型错误
错误原因:
- 调用集合方法时传入的参数个数或类型与该方法定义不匹配(如 COUNT 不需要参数而传入了参数等)。
分析与建议:
- 参照自定义类型集合方法文档调整参数。
E10118:在动态SQL参数或游标参数中不允许使用临时类型
错误原因:
- 动态 SQL 或游标参数中使用了临时/局部类型(如 PL/SQL 中定义的 TYPE ),而数据库引擎要求必须使用持久化的 SQL 类型。
分析与建议:
- 改用标准 SQL 类型或全局定义的类型。
E10120:DISTINCT选项在%s中禁用
E10121:在此情况下,路径表达式不能包含* 和 **标识符或数组范围
错误原因:
- 当前查询语法限制路径表达式,JSON 访问路径中不能包含通配符(* 或 **)或数组范围。
分析与建议:
- 正确使用 JSON 路径表达式。
E10122:路径表达式不是数组中单元格的路径
错误原因:
- 当前路径表达式格式不符合数组单元格的访问规范(缺少索引或格式错误)。
分析与建议:
- 检查路径表达式格式是否正确。
E10123:oneOrAll参数只能使用'one'或者'all'
错误原因:
- JSON_CONTAINS_PATH 参数未按规定使用 ONE 或者 ALL。
分析与建议:
- JSON_CONTAINS_PATH 参数只能使用 ONE 或者 ALL。
E10124:'%s'在指定的路径上未找到值
错误原因:
- JSON 函数或 JSON 操作符给定的路径不正确。
分析与建议:
- 检查 JSON 路径值。
E10125:'%s'在指定的路径上找到多个值
错误原因:
- 使用**多层查找出现多个值。
分析与建议:
- 检查 JSON 路径值。
E10126:无效的JSON类型,必须是%s
错误原因:
- 使用 JSON_SCHEMA_VALID 给定字符串不符合 JSON SCHEMA 格式。
分析与建议:
- 检查 JSON 字符串。
E10128:当前上下文不允许使用路径表达式'$'
错误原因:
- JSON_REMOVE 使用了'$'。
分析与建议:
- JSON_REMOVE 不使用'$'。
E10129:无法对回收站中的对象执行 DDL/DML
错误原因:
- 目标对象位于回收站(RECYCLEBIN)中,处于逻辑删除状态,禁止直接执行DDL/DML操作。
分析与建议:
- 先恢复对象再操作或彻底删除后重建。
E10130:Coalesce函数的参数表达式错误
错误原因:
- COALESCE 函数给定的参数表达式错误。
分析与建议:
- 给定正确的参数。
E10131:Coalesce函数的参数无公共数据类型
错误原因:
- COALESCE 函数传入的参数类型无法正确匹配或转换为公共类型。
分析与建议:
- 传入正确的参数同 COALESCE 定义的函数有公共数据类型。
E10132:Coalesce函数的参数公共类型%s无比较函数
错误原因:
- COALESCE 函数传入的参数类型的公共类型无比较函数。
分析与建议:
- 若参数无比较函数则不使用 COALESCE 函数。
E10133:管道函数中的 RETURN 语句不能包含表达式
错误原因:
- 管道函数中的 RETURN 语句使用了表达式。
分析与建议:
- 管道函数中的 RETURN 语句不使用表达式。
E10134:PIPE 语句只能在管道函数中使用
错误原因:
- PIPE 语句未在管道函数中使用。
分析与建议:
- 只能在管道函数中使用 PIPE 函数。
E10135:管道函数必须具有支持的集合返回类型
错误原因:
- 管道函数的返回类型必须是支持的集合类型。
分析与建议:
- 在管道函数中声明正确返回类型。
E10137:repeat()结果超过允许的最大长度(%d)
错误原因:
- REPEAT 函数的输出结果长度超过了系统或字段定义的最大限制。
分析与建议:
- 截断结果至合法长度。
E10138:GROUP_CONAT()结果超过允许的最大长度(%d)
错误原因:
- GROUP_CONAT 输出结果长度超过了系统或字段定义的最大限制。
分析与建议:
- 调整函数拼接长度或放宽系统参数 group_concat_max_len 的限制。
