Skip to content

适用虚谷数据库版本

v12.10.8



适用虚谷数据库版本

v12.10.8


E16001-E16999

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

当前页面错误码为字段、子查询、ROWNUM相关错误码。

注意

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

E16002:值的个数与字段的个数不相等

  • 错误原因

    1. 该错误一般出现在向表/视图插入数据时,指定表/视图字段数量与实际插入数据个数不相等。
  • 分析与建议

    1. SQL 语句书写逻辑错误,需要对 SQL 做出调整。

E16003:各个%s查询必须含有相同字段数

  • 错误原因

    1. 集合查询场景下,左右支的输出字段数不一致。
  • 分析与建议

    1. SQL 语句书写逻辑错误,需要对 SQL 做出调整。

E16004:子查询的结果字段数与行表达式的字段项数不相等

  • 错误原因

    1. 子连接查询(SUBLINK)返回结果数与外层行表达式字段数不一致。
  • 分析与建议

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

E16005:字段%s不能取空值

  • 错误原因

    1. 对具备非空约束字段或序列值字段插入或更新了空值。
  • 分析与建议

    1. 删除字段的非空约束,或删除字段的序列值属性。

E16007:字段%s不存在

  • 错误原因

    1. 为表对象上不存在的字段创建索引;
    2. 删除/修改表对象上不存在的字段;
    3. 为表对象上不存在的字段添加注释;
    4. 对表对象上不存在的字段进行插入/更新/查询;
  • 分析与建议

    1. 确认SQL语句及其逻辑是否正确。

E16008:关系%s已含有字段%s

  • 错误原因

    1. 为表对象添加已存在的同名字段。
    2. 创建含有多个 ROWVERSION 类型字段的表对象。
    3. 为表对象修改字段名时,新字段名与旧字段名重复。
    4. 为表对象添加安全策略时,指定的安全策略字段名与表对象上的非安全策略字段同名。
  • 分析与建议

    1. 确认SQL语句是否正确

E16010:字段%s不能被修改

  • 错误原因

    1. 对表数据进行 UPDATE 时,尝试修改 ROWVERSION 类型字段的数据。
  • 分析与建议

    1. 确认修改字段是否为 ROWVERSION 数据类型。

E16011:具有名%s的字段不只一个

  • 错误原因

    1. 修改/添加表结构字段时,修改的字段中含有同名字段。
    2. 创建含有同名字段的表对象。
  • 分析与建议

    1. 修改字段名称,保证表结构中不能出现重名的字段。

E16013:参与联接的字段所对应的数据类型不支持比较操作符'='

  • 错误原因

    1. 联接查下中使用无法进行联接的字段进行联接(参与联接的字段类型没有对应的比较操作符)。
  • 分析与建议

    1. 修改联接字段。

E16014:字段%s的数据类型与引用字段%s.%s的数据类型不兼容

  • 错误原因

    1. 创建/修改含有外键约束的表对象时,外键引用字段类型与主键表对应字段类型不相同。
  • 分析与建议

    1. 确认 SQL 语句是否正确。

E16015:不能删除安全标记字段%s

  • 错误原因

    1. 尝试删除带有安全标记的字段。
  • 分析与建议

    1. 安全标记字段不支持直接删除,应先取消安全标记,再删除字段。

E16016:字段%s的新定义与旧定义完全一致

  • 错误原因

    1. 修改表字段时,被修改字段的新旧定义一致。
  • 分析与建议

    1. 确认新字段定义是否与旧值一致,注:DATETIME 与 TIMESTAMP 属于同一类型,CHAR 精度变更建议直接变为 VARCHAR。

E16017:字段%s非空,不能转换为不相容类型

  • 错误原因

    1. 修改表字段时,字段被修改前后的数据类型不兼容(无法转换)。
  • 分析与建议

    1. 修改字段类型为可兼容的数据类型。

E16019:字段名%s重复

  • 错误原因

    1. 对表对象进行数据插入时,显式指定了同名重复字段。
    2. EXCEPT CORRESPONDING 集合查询场景下,指定了同名重复字段。
    3. 创建表对象时,约束中含有同名重复的字段。
    4. 删除表字段时,显式指定了同名重复的字段。
    5. 创建索引时,显式指定了同名重复的字段作为索引键。
  • 分析与建议

    1. 删除多余的同名重复字段。

E16020:字段序号超过了解cursor定义的字段数

  • 错误原因

    1. 游标定义的 SELECT 语句返回了N列,但 FETCH INTO 语句中却提供了 M 个变量(M>N)。
    2. 可能游标定义中的 SELECT 列数被减少,但 FETCH 部分未同步更新。
  • 分析与建议

    1. 确保数量一致,检查游标定义中的 SELECT 列数和 FETCH INTO 的变量数量是否一致。

E16021:字段表达式错误

  • 错误原因

    1. 该错误一般出现在语法层面使用 UNPIVOT 不正确。
  • 分析与建议

    1. 参考手册 UNPIVOT 使用方法。

E16023:找不到可更改的字段%s

  • 错误原因

    1. SELECT 语句中的 FOR UPDATE OF 指定的字段不存在。
  • 分析与建议

    1. 确认是否书写错误,并更改字段名为表中存在的字段名。

E16024:关系%s不含字段%s

  • 错误原因

    1. 对表对象中不存在的字段进行授权。
    2. 对表对象中不存在的字段进行字段名修改。
    3. 对表对象中不存在的字段进行数据访问。
  • 分析与建议

    1. 确认字段名字是否书写错误,SQL 中出现的字段必须在表对象中真实存在。

E16027:找不到类型字段%s

  • 错误原因

    1. 引用变量或者列的类型时,指定的字段名格式错误。
  • 分析与建议

    1. 确认该字段是否真实存在。

E16028:Fetch语句中字段数与目标变量个数不相符

  • 错误原因

    1. 游标定义查询字段数量与 FETCH INTO 数量对应不上。
  • 分析与建议

    1. 确保数量匹配保持一致。

E16029:Fetch字段类型与变量%s类型不兼容

  • 错误原因

    1. 游标定义字段类型与变量类型之间不能相互转换。
  • 分析与建议

    1. 定义的类型支持相互转换。

E16031:子查询返回的行数大于1

  • 错误原因

    1. SQL 查询中有一个子查询期望返回单行结果,但实际上返回了多行数据。
  • 分析与建议

    1. 可使用 IN 表达式代替比较运算符。
    2. 使用聚合函数确保当行结果。
    3. 使用 LIMIT 限制返回行数

E16032:子查询缺乏from子句

  • 错误原因

    1. 子查询缺失 FROM 子句。
  • 分析与建议

    1. 为子查询添加 FROM 子句或者简化不必要的子查询。

E16033:名%s不能唯一标识一个字段

  • 错误原因

    1. 多表连接的同名字段,多个表包含相同名称的字段。
    2. UPDATE 或者 DELETE 语句中出现相同名。
  • 分析与建议

    1. 明确指定对象别名,重命名冲突字段名。

E16034:查询缺失输出字段或表达式

  • 错误原因

    1. SELECT 关键字后没有任何字段或表达式。
  • 分析与建议

    1. 添加有效的字段或表达式。

E16035:ROWNUM表达式使用方式不当

  • 错误原因

    1. ROWNUM 表达式使用错误。
  • 分析与建议

    1. ORDER BY 后禁止使用 ROWNUM。

E16036:右值向量必须是常量类型

  • 错误原因

    1. 分析 (expr1,expr2...) IN((...),(...)...) 表达式时,IN 表达式的右值既不是常量表达式也不是参数。
  • 分析与建议

    1. IN 表达式的右值必须是常量表达式或参数。

E16037:MERGE INTO 更新时源表匹配到多行

  • 错误原因

    1. 源数据在关联条件上不唯一,导致无法确定如何更新目标表。
  • 分析与建议

    1. 对源表进行去重处理。

E16038:字段%s非空,不能转换为精度范围更小的数据类型

  • 错误原因

    1. 对拥有非空数据的表对象进行表结构修改,尝试将 VARCHAR、BINARY 和 NUMERIC 数据类型字段的精度范围改小(非强制方式)。
  • 分析与建议

    1. 不建议修改表结构时,将字段的精度改小。