Skip to content

适用虚谷数据库版本

v12.10.8



适用虚谷数据库版本

v12.10.8


E17001-E17999

📄字数 8.0K
👁️阅读量 加载中...

当前页面错误码为数据类型相关错误码。

注意

%s,%d是C语言中的格式化输出符,会根据输入的值自动填充

E17001:未知的节点,类型号为%d

  • 错误原因

    1. 增加存储域内的存储节点时,指定的节点号不合理(节点号小于1或大于集群最大节点数)。
    2. 删除存储域内的存储节点时,指定的节点号不合理(节点号小于1或大于集群最大节点数)。
  • 分析与建议

    1. 正确使用存储域功能。

E17002:数据类型%s不存在

  • 错误原因

    1. 创建表或修改列时指定列的数据类型异常。
    2. 修改表结构时,新增字段或被修改字段指定的数据类型不存在。
    3. 创建表对象时,指定的字段数据类型不存在。
    4. 创建函数时,指定的函数返回值数据类型不存在。
    5. 使用 CAST 进行数据类型强制转换时,指定的目标数据类型不存在。
  • 分析与建议

    1. 参考 SQL 语法手册,确定数据类型是否正确。

E17003:数据格式错

  • 错误原因

    1. 创建序列值发生器时,指定的序列值发生器属性值(增长步长、最大值或最小值等)数据格式异常。
    2. 字符串向浮点数转换时,字符串的数据格式异常。
    3. 数值转换场景下,被转换数值的数据格式异常。
    4. 部分表达式计算场景下,参与计算的数值数据格式异常。
  • 分析与建议

    1. 确定数据类型与数据值是否匹配。

E17005:数值超界

  • 错误原因

    1. 创建序列值发生器时,指定的序列值发生器属性值(增长步长、最大值或最小值等)数值超界。
    2. NUMERIC、BIGINT、DOUBLE、INTEGER 等数值类型的表达式进行计算、类型转换时出现数值超界。
    3. 系统函数在处理时间日期类型或数值类型的实参时出现数值超界。
    4. 针对数组的相关操作出现数值超界。
    5. 针对 JSON 数据类型的处理出现数值超界。
  • 分析与建议

    1. 确认数据类型的精度是否满足使用场景,酌情增加数据类型的精度。

E17007:不能实现类型%s到类型%s的转换

  • 错误原因

    1. 服务端接收的参数与实际绑定的参数数据类型不匹配且无法实现接收的参数值向实际绑定的参数数据类型转换。
    2. BETWEEN .. AND ..表达式中的数据类型不一致且无法互相转换。
    3. 数据类型强制转换 CAST 表达式中无法实现向目标数据类型的转换。
    4. 编译 PL/SQL 语句体时,涉及部分需要进行类型转换的表达式无法实现类型转换。
    5. JSON 处理场景下的部分需要进行类型转换的表达式无法实现类型转换。
  • 分析与建议

    1. 确认操作数据类型是否为兼容数据类型,合理使用数据类型转换在各个场景的应用。

E17009:Where表达式必须是boolean型

  • 错误原因

    1. DELETE、UPDATE、MERGE INTO 和 SELECT 语句中的 WHERE 过滤条件表达式计算结果不是布尔类型。
    2. 调用 DBMS_REPLICATION.POLL_MODIFY_DATA 消费变更日志时指定的过滤条件实参表达式计算结果不是布尔类型。
  • 分析与建议

    1. 正确使用 WHERE 谓词。

E17011:Where表达式中不能含有统计项

  • 错误原因

    1. 统计项作为 WHERE 条件使用。
    2. 分组项作为 WHERE 条件使用。
  • 分析与建议

    1. 统计项限制条件应使用 HAVING。

E17012:表达式错

  • 错误原因

    1. SQL 中引入了不支持或错误的表达式。
  • 分析与建议

    1. 确认 SQL 语句正确性。

E17013:SELECT FOR UPDATE不允许出现在UNION/INTERSECT/EXCEPT类型的SQL语句中

  • 错误原因

    1. 集合查询 UNION/INTERSECT/EXCEPT 中使用了 FOR UPDATE。
  • 分析与建议

    1. 集合查询 UNION/INTERSECT/EXCEPT 中不支持 FOR UPDATE。

E17015:子查询的类型不匹配

  • 错误原因

    1. 子查询中字段类型不兼容。
  • 分析与建议

    1. 修改SQL语句以满足使用条件。

E17016:CASE WHEN⼦句各分⽀类型不能统⼀

  • 错误原因

    1. CASE WHEN 子句中返回值类型不兼容。
  • 分析与建议

    1. 修改 SQL 语句以满足使用条件。

E17017:行表达式的个数不相等

  • 错误原因

    1. 关系表达式中左值与右值数量不相等。
  • 分析与建议

    1. 关系表达式中左值与右值数量必须保持一致。

E17021:表达式%s错误

  • 错误原因

    1. 层次查询中的 CONNECT_BY_ROOT 参数个数不为 1。
    2. 层次查询中的 CONNECT_BY_PATH 或 SYS_CONNECT_BY_PATH 参数个数不为 2。
    3. 层次查询中的 CONNECT_BY_PATH 或 SYS_CONNECT_BY_PATH 传入的 2 号参数不为常量表达式或非字符数据类型。
    4. SQL 中的字段表达式异常。
    5. ROW_NUMBER、RANK、DENSE_RANK、NTILE、LEAD、LAG、FIRST_VALUE、LAST_VALUE 等开窗函数使用不规范。
    6. PL/SQL 中的表达式使用不规范。
  • 分析与建议

    1. 确认表达式是否正确。
    2. 块语句中,表达式中是否存在未定义的情况。

E17024:类型ID%d错误

  • 错误原因

    1. DML 语句中使用 INTO 将结果输出到变量时,字段值与变量的数据类型不兼容。
    2. PL/SQL 语句中使用游标 FETCH 字段数据到局部变量中时,字段值与变量的数据类型不兼容。
    3. 使用 DBMS_SQL.DEFINE_COLUMN 时,字段值与输出型参数的数据类型不兼容。
  • 分析与建议

    1. 了解各个数据类型之间的兼容程度,为可能涉及数据类型转换的场景做评估,尽量对其进行规避。

E17025:存在对类型%s依赖的项目

  • 错误原因

    1. 删除被其它对象引用的用户自定义数据类型(UDT)。
    2. 修改被其它对象引用的用户自定义数据类型(UDT)。
  • 分析与建议

    1. 条件允许的情况下先删除引用对象,在处理用户自定义数据类型(UDT)。
    2. 另外新建用户自定义数据类型(UDT)。

E17026:UDT类型%s不存在

  • 错误原因

    1. PL/SQL 或 过程函数中使用了不存在的用户自定义数据类型(UDT)。
    2. 删除不存在的用户自定义数据类型。
  • 分析与建议

    1. 检测用户自定义数据类型是否还存在或其数据类型名称是否拼写错误。

E17028:数据值超过定义范围

  • 错误原因

    1. 时间日期类数值计算时,数值超界。
    2. 设置系统变量 EXCLUDE_ERRNO 时,给定的错误号出现数值超界。
  • 分析与建议

    1. 确认表中字段类型精度,然后确认数据是否符合类型限定。

E17029:类型%s不存在或不是系统类型,不能指定默认值

  • 错误原因

    1. 创建表对象时,指定了默认值的字段使用了不支持的数据类型。
    2. 修改表结构时,指定了默认值的新增或被修改字段使用了不支持的数据类型。
    3. 编译过程或函数时,过程或函数中指定了默认值的形式参数使用了不支持的数据类型。
  • 分析与建议

    1. 正确使用默认值。

E17030:默认值表达式%s错误

  • 错误原因

    1. 创建表对象时,指定了默认值的字段数据类型与默认值表达式数据类型不兼容。
    2. 修改表结构时,指定了默认值的新增或被修改字段与默认值表达式数据类型不兼容。
    3. 编译过程或函数时,过程或函数中指定了默认值的形式参数与默认值表达式数据类型不兼容。
  • 分析与建议

    1. 正确使用默认值。

E17031:类型名%s错误

  • 错误原因

    1. 创建表对象或者自定义类型时,类型名错误。
  • 分析与建议

    1. 确定类型名是否正确。

E17032:创建自定义类型%s失败

  • 错误原因

    1. 尝试创建系统不支持的用户自定义数据类型(UDT)。
  • 分析与建议

    1. 正确使用用户自定义数据类型。

E17033:自定义类型%s未声明

  • 错误原因

    1. 申明自定义类型类型体时未申明自定义头。
  • 分析与建议

    1. 创建自定义类型类型头。

E17037:变量值类型错误(取值应为ON/TRUE或OFF/FALSE)

  • 错误原因

    1. 修改布尔类型的系统参数、系统变量或会话变量时,给定的参数值无效,无法识别为布尔值。
  • 分析与建议

    1. 修改变量值为 ON/TRUE 或 OFF/FALSE。

E17038:变量值类型错误(应为整数值型)

  • 错误原因

    1. 修改数值类型的系统参数、系统变量或会话变量时,给定的参数值无效,无法识别为数值。
  • 分析与建议

    1. 修改变量值为整数值类型。

E17040:错误的cursor表达式

  • 错误原因

    1. 游标表达式错误。
  • 分析与建议

    1. 语法层就会报错,参考 SQL 语法手册游标章节。

E17041:使用许可已到期,系统不再支持与数据定义及数据更改相关的命令,请购买正式使用许可或将需要保留的数据导出

  • 错误原因

    1. LICENSE 到期。
  • 分析与建议

    1. 重新申请 LICENSE。

E17042:表达式错误

  • 错误原因

    1. 无效的表达式。
  • 分析与建议

    1. 确认表达式是否正确。

E17045:不能识别的表达式类型

  • 错误原因

    1. 不支持该表达式。
  • 分析与建议

    1. 正确组织表达式。

E17046:成员表达式%s错误

  • 错误原因

    1. VARRAY 类型、TABLE 类型、存储函数、包成员函数调用中表达式错误。
  • 分析与建议

    1. 确认表达式是否正确。

E17049:不能实现从类型%s到类型%s的转换

  • 错误原因

    1. IN 表达式中的左值与右值数据类型不兼容且无法转换。
    2. 集合查询中左支与右支字段的数据类型不兼容且无法转换。
  • 分析与建议

    1. 正确使用类型转换。

E17054:类型模板%s不存在

  • 错误原因

    1. PL/SQL 中,ROWTYPE 初始化失败。
    2. 不支持的数据类型。
  • 分析与建议

    1. 在 PL/SQL 中使用构造函数初始化。

E17057:变量%s的成员数据类型与游标结果类型不符

  • 错误原因

    1. 集合的元素类型与游标的结果字段类型不能相互转换。
  • 分析与建议

    1. 定义的类型应满足相互之间可以转换。

E17058:Fetch bulk语句目标变量%s不是集合类型

  • 错误原因

    1. FETCH BULK 语句的目标变量类型不是集合类型。
  • 分析与建议

    1. 将目标变量(即INTO后面的变量)定义为集合类型(如TABLE或VARRAY)。

E17059:集合变量%s与游标结果类型不符

  • 错误原因

    1. 游标定义类型与目标记录类型不兼容,且不能相互转换。
    2. PL/SQL 中的 DML 语句使用 INTO 时,INTO 的目标项目为记录类型,出现字段类型不兼容。
  • 分析与建议

    1. 定义的类型应满足相互之间可以转换。

E17065:不支持%s%s%s形式的表达式

  • 错误原因

    1. 在 PL/SQL 中,编译条件表达式时,关系操作符的左操作数与右操作数类型不兼容且无法转换。
  • 分析与建议

    1. 对关系表达式进行适当的调整。

E17066:表达式%s与%s不可比较

  • 错误原因

    1. 集合查询场景下,左支或右支查询中包含大对象、JSON 或 XML 等无法参与比较计算的数据类型。
  • 分析与建议

    1. 集合查询中不能出现无法参与比较计算的数据类型字段。

E17067:表达式错误

  • 错误原因

    1. PL/SQL 中的条件语句、循环语句或 CASE WHEN 语句使用的条件表达式使用了无效的表达式。
    2. PL/SQL 中使用了无效的表达式。
    3. UDT/集合/记录类型的成员使用了无效的表达式。
    4. 计算表达式中使用了无效的表达式。
  • 分析与建议

    1. 确认表达式是否书写正确。

E17069:常数不能转化为非基础类型%s

  • 错误原因

    1. 双目表达式中,尝试将常数与非基础数据类型的变量或表达式进行计算。
  • 分析与建议

    1. 规范表达式使用方式。

E17071:表达式%s下标类型错误

  • 错误原因

    1. 编译itable类型时,嵌套表类型与参数类型之间转换失败。
  • 分析与建议

    1. 修改参数类型。

E17072:类型%s不含成员%s或该成员与声明不符

  • 错误原因

    1. 获取成员变量的类型失败。
  • 分析与建议

    1. 确认类型是否声明或者定义类型时错误。

E17074:条件表达式不是BOOL表达式

  • 错误原因

    1. PL/SQL 中的条件语句、循环语句或 CASE WHEN 语句使用的条件表达式不符合规范。
  • 分析与建议

    1. 条件表达式的计算结构必须是布尔类型。

E17075:变量%s与初始值类型不兼容

  • 错误原因

    1. PL/SQL 中定义的变量初始值无法向变量自身数据类型转换。
  • 分析与建议

    1. 规范变量的使用方式。

E17076:赋值语句类型不兼容

  • 错误原因

    1. 编译赋值语句时,右值类型不能转换成左值类型。
  • 分析与建议

    1. 正确使用变量赋值语句。

E17078:动态SQL的语句产生表达式%s不是字符串类型

  • 错误原因

    1. 编译生成 SQL 语句表达式的类型不是字符类型。
  • 分析与建议

    1. 将表达式的类型修改为字符类型。

E17079:Forall语句的子句类型错误

  • 错误原因

    1. 编译 FORALL 语句中的 DML 子句,返回 DML 对象地址时,子句不是过程、INSERT、UPDATE 或 DELETE 语句。
  • 分析与建议

    1. 确认子句是过程、INSERT、UPDATE 或 DELETE 语句之一

E17080:变量%s不是集合类型

  • 错误原因

    1. 编译 FORALL 语句,集合变量的类型不是 TABLE、VARRAY 或 ITABLE。
  • 分析与建议

    1. 确保集合变量类型是 TABLE、VARRAY 或 ITABLE 之一。

E17081:循环下界变量%s与循环变量类型不兼容

  • 错误原因

    1. 编译 FORALL 语句时,循环变量类型与循环下边界变量类型之间不能相互转换。
  • 分析与建议

    1. 确保循环变量类型与循环下边界变量类型一致。

E17082:循环上界变量%s与循环变量类型不兼容

  • 错误原因

    1. 编译 FORALL 语句时,循环变量类型与循环上边界变量类型之间不能相互转换。
  • 分析与建议

    1. 确保循环变量类型与循环上边界变量类型一致。

E17083:不支持类型号为%d的循环变量

  • 错误原因

    1. 编译 FORALL 语句时,循环变量类型错误。
  • 分析与建议

    1. 确保循环变量类型为 INT、BIGINT、FLOAT、DOUBLE、NUMERIC、CHAR 或时间相关的数值类型。

E17084:For语句初值类型错误

  • 错误原因

    1. 编译 FOR 语句时,初值类型赋值与变量类型之间不能相互转换。
  • 分析与建议

    1. 确保循环变量类型与初始值类型一致。

E17085:For语句终值类型错误

  • 错误原因

    1. 编译 FOR 语句时,终值类型赋值与变量类型之间不能相互转换。
  • 分析与建议

    1. 确保循环变量类型与终值类型一致。

E17088:数组成员%d数据无效

  • 错误原因

    1. 块语句中获取数组(varray)成员类型失败。
  • 分析与建议

    1. 确认是否存在该类型,且语句是否书写错误。

E17089:备份数据含有错误

  • 错误原因

    1. 恢复数据文件,从备份文件中读取数据异常。
  • 分析与建议

    1. 备份文件可能已被损坏,需重新备份。

E17090:数据异常/字串超长

  • 错误原因

    1. 字符串长度超长。
  • 分析与建议

    1. 修改 str_trunc_warning 为 true,超长字符串会被截断且以警告代替异常;
    2. 调整数据长度或表字段的精度。

E17091:统计函数忽略了部分空值

  • 错误原因

    1. 参与聚合计算的表字段数据中存在空值。
  • 分析与建议

    1. 正常警告报错或者修改表中空值数据。

E17094:Cursor%s定义错误

  • 错误原因

    1. 编译游标定义时,获取游标的输出行类型失败。
  • 分析与建议

    1. 确认游标定义是否正确。

E17095:Fetch错误:变量个数或类型与动态SQL返回结果不一致

  • 错误原因

    1. 游标输出字段个数与存放字段结果集的变量地址数量对应不上。
  • 分析与建议

    1. 游标输出字段个数与存放字段结果集的变量地址数量保持一致。

E17096:自定义类型%s的成员最大数量为%d

  • 错误原因

    1. OBJECT 或 VARRAY 类型的成员数量超出阈值。
  • 分析与建议

    1. 自定义数据类型的成员数量不应大于阈值限制。

E17097:类型%s和类型%s无公共类型

  • 错误原因

    1. NVL 表达式中的空表达式和非空表达式均不为字符类型,且两者之间没有公共数据类型。
  • 分析与建议

    1. 规范使用 NVL 表达式。

E17098:数据成员下标不能为NULL

  • 错误原因

    1. UDT 的下标给定未指定的变量。
  • 分析与建议

    1. 定义指定变量类型或者修改未指定的变量已经定义的变量类型。

E17099:无效的JSON文本:"%s",位于位置%d处

  • 错误原因

    1. JSON 数据格式错误。
  • 分析与建议

    1. 参考数据类型 JSON 手册。

E17100:JSON文档超过最大深度%d

  • 错误原因

    1. JSON 数据嵌套深度超出阈值。
  • 分析与建议

    1. JSON 数据嵌套深度应保持在阈值范围内。

E17101:JSON路径解析失败,位置:%d

  • 错误原因

    1. JSON 数据解析失败。
  • 分析与建议

    1. JSON 数据格式异常。

E17102:JSON文档不能包含null成员名称

  • 错误原因

    1. JSON 数据中使用了 NULL 值作为 KEY。
  • 分析与建议

    1. JSON 数据格式异常。

E17103:暂未支持的操作:%s

  • 错误原因

    1. 数据库暂不支持的功能或操作。
  • 分析与建议

    1. 避开相关暂不支持的功能用法。

E17104:意外类型:%s

  • 错误原因

    1. JSON WRAPPER 中的数据类型无法向字符串转换。
  • 分析与建议

    1. 对 JSON WRAPPER 中的数据类型做出调整,可以是 ARRAY、BOOLEAN、DECIMAL、DOUBLE、INT、UINT、NULL、OBJECT 或 STRING。

E17105:指定精度(%d,%d),⽆法存储10^%d

  • 错误原因

    1. 整数向 NUMERIC 进行转换时,整数值大于 NUMERIC 定义的最大精度。
  • 分析与建议

    1. 调大 NUMERIC 的精度。

E17107:字符串不符合XML类型格式

  • 错误原因

    1. 字符串无法向 XML 数据类型转换。
    2. 进行流式导入过程中 XML 数据格式不正确。
  • 分析与建议

    1. 确认 XML 数据是否使用正确。

E17108:XPATH不能为空

  • 错误原因

    1. 使用 EXTRACT 系统函数时,XPATH 或 XQuery 表达式参数为空。
  • 分析与建议

    1. EXTRACT 的 XPATH 参数不能为空。

E17109:字段(col_no:%d,col_name:%s)数值超界

  • 错误原因

    1. 对 BIT 类型的字段进行数据更新、数据插入时,新值长度超过阈值。
    2. 对 NUMERIC 类型的字段进行数据更新、数据插入时,新值长度超界。
  • 分析与建议

    1. 调整数据或相关字段的精度。

E17110:AuthID只允许是CURRENT_USER或DEFINER

  • 错误原因

    1. 语法层报错。
  • 分析与建议

    1. 确认 CURRENT_USER 或 DEFINER 是否书写错误

E17111:字段(col_no:%d,col_name:%s)数据异常/字串超长

  • 错误原因

    1. 对字符串类型的字段进行数据更新、数据插入时,新值长度超过阈值。
    2. 对 BINARY 类型的字段进行数据更新、数据插入时,新值长度超过阈值。
  • 分析与建议

    1. 调整数据。

E17113:数据错误(溢出)

  • 错误原因

    1. 兼容性聚合函数 VAR 和 VARIANCE 在计算过程中计算结果超界。
  • 分析与建议

    1. 属于正常报错,调整参与计算的数值即可。

E17114:指定的精度无效,有效范围[0,3]

  • 错误原因

    1. 调用系统函数 COMPRESS_FLOATS 时指定的精度大于3。
  • 分析与建议

    1. 修改精度实参为 0~3 范围之内。

E17115:数组类型: %s

  • 错误原因

    1. 数组类型的数据格式错误。
  • 分析与建议

    1. 参考数组类型手册。