本文为您介绍SQL错误码列表、触发条件及处理方法。

该类型错误的错误码编码格式如下。
ODPS-01CCCCX:通用描述 - 上下文相关说明
SQL错误包含META(CCCC段为1000~1999)、PROCESSOR(CCCC段为2000~2999)、PARSER(CCCC段为3000~3999)和PLANNER(CCCC段为4000~4999)模块错误。具体错误码列表如下。

ODPS-0110011:Authorization exception

  • 模块:META。
  • 严重等级:1。
  • 触发条件:权限不足。
  • 处理方法:请根据提示信息,联系项目所有者授予对应操作权限。更多权限信息,请参见MaxCompute权限

ODPS-0110021:Invalid parameters

  • 模块:META。
  • 严重等级:1。
  • 触发条件:非法参数。
  • 处理方法:检查并修改输入参数,确保满足入参要求。

ODPS-0110031:Invalid object type

  • 模块:META。
  • 严重等级:1。
  • 触发条件:非法对象类型。
  • 处理方法:检查并修改输入对象,确保满足对象类型要求。

ODPS-0110041:Invalid meta operation - AlreadyExistsException(message:Partition already exists, existed values:)

  • 模块:META。
  • 严重等级:1。
  • 触发条件:MaxCompute对正在操作的表没有锁机制。这个错误是由元数据产生竞争导致,向同一个分区同时多次执行读写操作容易产生此类错误。
  • 处理方法:在MaxCompute还没有锁机制的情况下,不要同时对一个表执行操作。

ODPS-0110061: Failed to run ddltask - AlreadyExistsException(message:Partition already exists, existed values:)

  • 模块:META。
  • 严重等级:1。
  • 触发条件:MaxCompute对正在操作的表没有锁机制。这个错误是由元数据产生竞争导致,向同一个分区同时多次执行读写操作容易产生此类错误。
  • 处理方法:在MaxCompute还没有锁机制的情况下,不要同时对一个表执行操作。

ODPS-0110061:Failed to run ddltask - SimpleLock conflict failure, add partition is already on-going

  • 模块:META。
  • 严重等级:1。
  • 触发条件:当批量添加同一分区时,会出现此错误。MaxCompute仅会执行接收到的第一个添加分区命令,并忽略后续请求。
  • 处理方法:避免同时对同一分区执行操作。

ODPS-0110061: Failed to run ddltask - Your project is not allowed to install the package

  • 模块:META。
  • 严重等级:1。
  • 触发条件:使用数据动态脱敏时,直接执行install package aegis.aegis_package;命令,未将待脱敏的MaxCompute项目添加至脱敏project中,会出现此错误。
  • 处理方法:执行install package aegis.aegis_package;命令前,请先将待脱敏的MaxCompute项目添加至脱敏project中,详情请参见步骤二:为目标MaxCompute项目开启数据脱敏功能

ODPS-0110999: Critical! Internal error happened in commit operation and rollback failed, possible breach of atomicity - Rename directory failed during DDLTask.

  • 模块:META。
  • 严重等级:1。
  • 触发条件:MaxCompute没有并发控制,可能有多个任务在修改这张表。这种情况下,有极小的概率在最后的META操作时,发生并发冲突导致执行异常。同时ALTER、INSERT操作都会发生此情况。
  • 处理方法:建议您将此表修改为分区表,每个SQL语句插入的数据写入单独的分区里,这样便可以执行并发操作。

ODPS-0120011:Authorization exception

  • 模块:PROCESSOR。
  • 严重等级:1。
  • 触发条件:权限不足。
  • 处理方法:请根据提示信息,联系项目所有者授予对应操作权限。更多权限信息,请参见MaxCompute权限

ODPS-0120021:the delimitor must be the same in wm_concat

  • 模块:PROCESSOR。
  • 严重等级:1。
  • 触发条件:同一组中分隔符必须相同。
  • 处理方法:统一分隔符格式,确保一致。

ODPS-0120031:Instance has been cancelled

  • 模块:PROCESSOR。
  • 严重等级:1。
  • 触发条件:实例已经被取消。
  • 处理方法:您可以通过MaxCompute客户端执行status <instance_id>;命令确认实例状态。

ODPS-0121011:Invalid regular expression pattern

  • 模块:PROCESSOR。
  • 严重等级:1。
  • 触发条件:内建函数中的正则处理函数接收到了不能识别的正则表达式。
  • 处理方法:修改为可识别的正则表达式。更多正则表达式信息,请参见正则表达式规范

ODPS-0121021:Regexec call failed

  • 模块:PROCESSOR。
  • 严重等级:1。
  • 触发条件:正则匹配时引起的错误。
  • 处理方法:确认正则表达式的规范性。更多正则表达式信息,请参见正则表达式规范

ODPS-0121035:Illegal implicit type cast

  • 模块:PROCESSOR。
  • 严重等级:5。
  • 触发条件:类型转换错误。通常为不支持的隐式类型转换错误,由于违背隐式转换规则引起的问题。
  • 处理方法:更多隐式类型转换信息,请参见隐式类型转换及其作用域

ODPS-0121045:Unsupported return type

  • 模块:PROCESSOR。
  • 严重等级:5。
  • 触发条件:不支持的返回值。
  • 处理方法:修改为支持的返回值。

ODPS-0121055:Empty argument value

  • 模块:PROCESSOR。
  • 严重等级:5。
  • 触发条件:参数为空或NULL。
  • 处理方法:修改入参。

ODPS-0121065:Argument value out of range

  • 模块:PROCESSOR。
  • 严重等级:5。
  • 触发条件:参数值错误,超出允许范围。
  • 处理方法:修改参数值。

ODPS-0121075:Invalid number of arguments

  • 模块:PROCESSOR。
  • 严重等级:5。
  • 触发条件:参数个数不合法。
  • 处理方法:修改参数数量。

ODPS-0121081:Illegal argument type

  • 模块:PROCESSOR。
  • 严重等级:1。
  • 触发条件:参数基本类型错误。
  • 处理方法:修改参数类型。

ODPS-0121095:Invalid arguments

  • 模块:PROCESSOR。
  • 严重等级:5。
  • 触发条件:输入参数错误。
  • 处理方法:修改输入参数。

ODPS-0121105:Constant argument value expected

  • 模块:PROCESSOR。
  • 严重等级:5。
  • 触发条件:需要输入常量,但输入列名。
  • 处理方法:修改输入为常量。

ODPS-0121115:Column reference expected

  • 模块:PROCESSOR。
  • 严重等级:5。
  • 触发条件:需要输入列名,但输入常数。
  • 处理方法:修改输入为列名。

ODPS-0121125:Unsupported function or operation

  • 模块:PROCESSOR。
  • 严重等级:5。
  • 触发条件:不支持的UDF或其他操作。
  • 处理方法:修改UDF或更换操作。

ODPS-0121145:Data overflow

  • 模块:PROCESSOR。
  • 严重等级:5。
  • 触发条件:数据溢出,超出数据类型的值域范围。通常情况下有可能是聚合函数。例如,求和函数导致的数据溢出。
  • 处理方法:修改导致数据溢出的操作。

ODPS-0123049: buffer overflow

  • 模块:PROCESSOR。
  • 严重等级:9。
  • 触发条件:内存溢出。
  • 处理方法:检查数据是否有问题。例如Join操作中相同Key的数据太多。

ODPS-0123055:Script exception

  • 模块:PROCESSOR。
  • 严重等级:5。
  • 触发条件:脚本异常。
  • 处理方法:当遇到UDF报错时,请参考UDF常见问题中的类或依赖问题行排查处理。

ODPS-0123065:Join exception

  • 模块:PROCESSOR。
  • 严重等级:5。
  • 触发条件:JOIN操作异常。
  • 处理方法:修改JOIN操作。

ODPS-0123081:Invalid datetime string

  • 模块:PROCESSOR。
  • 严重等级:1。
  • 触发条件:DATETIME字符串异常。
  • 处理方法:修改DATETIME字符串。

ODPS-0123091:Illegal type cast

  • 模块:PROCESSOR。
  • 严重等级:1。
  • 触发条件:非法类型转换。通常情况下,是由于非法的显示类型转换造成的。
  • 处理方法:修改类型转换机制。更多数据类型转换信息,请参见数据类型转换

ODPS-0123105:Job got killed

  • 模块:PROCESSOR。
  • 严重等级:5。
  • 触发条件:作业被中止。
  • 处理方法:您可以通过MaxCompute客户端执行status <instance_id>;命令确认实例状态。

ODPS-0123111:Format string does not match datetime string

  • 模块:PROCESSOR。
  • 严重等级:1。
  • 触发条件:格式串不匹配日期字符串。您在SQL中手动输入的日期格式不符合MaxCompute的格式要求,或者对DATETIME相关内建函数使用不当。
  • 处理方法:修改日期格式。

ODPS-0123121:Mapjoin exception

  • 模块:PROCESSOR。
  • 严重等级:1。
  • 触发条件:MAPJOIN异常。通常情况是MAPJOIN的小表超过512 MB的系统限制造成的。
  • 处理方法:修改MAPJOIN操作。

ODPS-0123131:User defined function exception

  • 模块:PROCESSOR。
  • 严重等级:1。
  • 触发条件:自定义函数异常。
  • 处理方法:修改自定义函数。

ODPS-0130013:Authorization exception

  • 模块:PARSER。
  • 严重等级:3。
  • 触发条件:权限不足, 安全检查不通过。
  • 处理方法:请根据提示信息,联系项目所有者授予对应操作权限。更多权限信息,请参见MaxCompute权限

ODPS-0130031:Failed to drop table

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:删除表时发现源表不存在。
  • 处理方法:您可以通过MaxCompute客户端执行show tables;命令确认源表名称正确性及存在性。

ODPS-0130071:Semantic analysis exception - Invalid table alias or column reference

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:语法解析异常,列名错误,没有找到对应的列。
  • 处理方法:您可以通过MaxCompute客户端执行desc <table_name>;获取正确的列名称。

ODPS-0130071:Semantic analysis exception - Invalid column reference

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:语法解析异常,列引用错误,没有找到对应的列。
  • 处理方法:您可以通过MaxCompute客户端执行desc <table_name>;获取正确的列名称。

ODPS-0130071:Semantic analysis exception - Expression not in GROUP BY key

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:语法解析异常。在SELECT子句中,读取的列与GROUP BY的列不完全一致。
  • 处理方法:修改SELECT语句确保满足语法要求。更多GROUP BY信息,请参见GROUP BY分组查询(col_list)

ODPS-0130071:Semantic analysis exception - Partition not found

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:语法解析异常。没有找到所指定分区值的分区。
  • 处理方法:您可以通过MaxCompute客户端执行show partitions <table_name>;命令查询已存在的分区值,修改语句中的分区为已存在的分区。

ODPS-0130071:Semantic analysis exception - SELECT DISTINCT and GROUP BY can not be in the same query

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:DISTINCT和GROUP BY不能出现在同一个SELECT子句中。
  • 处理方法:修改语句,不要同时使用DISTINCT和GROUP BY。

ODPS-0130071:Semantic analysis exception - Cannot insert into target table because column number/types are different

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:向目标表插入数据时,源表和目标表的列数量或类型不匹配。
  • 处理方法:修改语句,确保源表和目标表的列数量或类型相匹配。

ODPS-0130071:Semantic analysis exception - physical plan generation failed: java.lang.RuntimeException: Table(xxxx) is full scan with all partitions, please specify partition predicates

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:表所属项目禁止了分区表全表扫描,需要指定分区条件。
  • 处理方法:如果当前SQL需要进行全表扫描,可以在SQL语句前加set odps.sql.allow.fullscan=true; 语句并一起提交运行。全表扫描会导致输入量增加从而使成本增加。

ODPS-0130071:Semantic analysis exception - physical plan generation failed: com.aliyun.odps.lot.cbo.FailFastException: instance count exceeds limit 99999

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:单个作业中的instance超过最高限制:100000。
  • 处理方法:调整split size降低并发量,可以在SQL语句前加set odps.sql.mapper.split.size=4096;语句并一起提交运行。调整每个Mapper读取表数据的大小,单位默认是MB。您可以通过控制这个变量,从而达到对Map端输入的控制。

ODPS-0130071:Semantic analysis exception - X type is not enabled in current mode

  • 问题现象:调用内建函数时,详细报错信息示例如下。
    FAILED: ODPS-0130071:[1,27] Semantic analysis exception - TIMESTAMP type is not enabled in current mode. Please set odps.sql.type.system.odps2=true to use it.
  • 产生原因:SQL语句中使用的内建函数涉及2.0数据类型(TINYINT、SMALLINT、INT、FLOAT、VARCHAR、TIMESTAMP或BINARY),但项目未开启2.0数据类型开关,导致MaxCompute处理失败。
  • 解决措施:您可以在MaxCompute客户端,通过如下方式之一,开启2.0数据类型开关:
    • Session级别:您需要在SQL语句前加上set odps.sql.type.system.odps2=true;语句,与SQL语句一起提交执行。
    • Project级别:项目所有者(Project Owner)可以根据需要对Project进行设置,等待10~15分钟后才会生效。命令如下。
      setproject odps.sql.type.system.odps2=true;

      命令生效后,重新执行SQL语句即可。

      更多setproject信息,请参见项目空间操作。更多开启Project级别2.0数据类型开关的注意事项,请参见数据类型版本说明

ODPS-0130071:Semantic analysis exception - wrong columns count X in data source, requires Y columns (includes dynamic partitions if any)

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:创建外部表时,外部表的列数与所映射的源表的列数不一致,导致外部表创建失败。
  • 处理方法:检查创建外部表语句,确保外部表列数与所映射的源表的列数一致。更多创建外部表语法信息,请参见外部表

ODPS-0130071:Semantic analysis exception - column X in source has incompatible type A with destination column Y, which has type B

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:外部表某列的数据类型与所映射的源表的列数据类型不一致,导致外部表创建失败。
  • 处理方法:检查创建外部表语句,确保外部表各列的数据类型与所映射的源表的列数据类型一致。更多创建外部表语法信息,请参见外部表

ODPS-0130071:Semantic analysis exception - max depth of expression is xxxx, which exceeds limit of 5000

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:运算表达式过于复杂,导致通过该表达式构造的树的节点数超过了限制5000。
  • 处理方法:建议优化运算表达式。

ODPS-0130071:Semantic analysis exception - function or view Y cannot be resolved

  • 问题现象:调用内建函数时,详细报错信息示例如下。
    FAILED: ODPS-0130071:[1,8] Semantic analysis exception - function or view 'row_number' cannot be resolved
  • 产生原因:SQL语句中使用的内建函数名称有误或者未携带参数,导致MaxCompute处理失败。
  • 解决措施:检查函数名称和参数名称,并根据函数语法要求添加输入参数,确保名称及语法格式全部正确后,重新执行SQL语句即可。

ODPS-0130081:Invalid UDF reference

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:UDF方法签名不合法。
  • 处理方法:修改UDF代码中的签名信息。

ODPS-0130091:Invalid parameters

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:UDF入参不合法。
  • 处理方法:修改UDF入参,确保满足UDF入参要求。

ODPS-0130101:Ambiguous data type

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:数据类型不合法。
  • 处理方法:修改数据类型。

ODPS-0130111: Fuxi job failed - Data Set should contains exactly one row

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:读取的数据集不满足要求,只能包含一行记录。
  • 处理方法:修改数据集,确保仅包含一行记录。

ODPS-0130111:Subquery partition pruning exception

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:IN条件判断语句中的子查询动态分区优化异常。
  • 处理方法:修改IN条件判断语句。

ODPS-0130121:Invalid argument type

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:非法参数类型。一般情况下,是内建函数接收到的参数类型不正确。
  • 处理方法:修改参数类型。

ODPS-0130121:Invalid argument type- invalid type X of argument m for function Y

  • 问题现象:调用内建函数时,详细报错信息示例如下。
    FAILED: ODPS-0130121:[1,18] Invalid argument type - invalid type STRING of argument 1 for function all_match, expect ARRAY<T>
  • 产生原因:SQL语句中使用的内建函数的实际输入参数类型不满足函数语法要求,导致MaxCompute处理失败。
  • 解决措施:根据函数语法要求修改输入参数,确保数据类型满足函数语法要求后,重新执行SQL语句即可。

ODPS-0130131:Table not found

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:表不存在。在操作DDL或DML语句时,被操作的表并不存在。
  • 处理方法:您可以通过MaxCompute客户端执行show tables;命令确认表名称。

ODPS-0130141:Illegal implicit type cast

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:不允许的隐式类型转换。
  • 处理方法:更多隐式转换信息,请参见隐式类型转换及其作用域

ODPS-0130151:Illegal data type

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:无效的数据类型。
  • 处理方法:修改数据类型。

ODPS-0130171:Creating view exception

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:创建视图异常。
  • 处理方法:检查创建视图语句并修改。更多创建视图语法信息,请参见创建或更新视图

ODPS-0130181:Window function exception

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:窗口函数异常。
  • 处理方法:检查窗口函数是否满足语法要求。

ODPS-0130191:Invalid column or partition key

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:非法的列或分区键。
  • 处理方法:您可以通过MaxCompute客户端执行desc <table_name>;show partitions <table_name>;命令确认列或分区合法性。

ODPS-0130201:View not found

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:视图不存在。
  • 处理方法:您可以通过MaxCompute客户端执行show tables;命令检查视图名称正确性。

ODPS-0130211:Table or view already exists

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:表或视图已存在。
  • 处理方法:修改待创建的表或视图的名称。

ODPS-0130221:Invalid number of arguments

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:参数个数不合法。
  • 处理方法:修改入参个数。

ODPS-0130221:Invalid number of arguments - function Y needs m parameters, actually have n

  • 问题现象:调用内建函数时,详细报错信息示例如下。
    FAILED: ODPS-0130221:[1,8] Invalid number of arguments - function from_utc_timestamp needs 2 parameters, actually have 1
  • 产生原因:SQL语句中使用的内建函数的实际输入参数个数不满足函数语法要求,导致MaxCompute处理失败。
  • 解决措施:检查内建函数的输入参数数量,补足或减少参数,确保满足函数语法要求后,重新执行SQL语句即可。

ODPS-0130231:Invalid view

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:视图无效。
  • 处理方法:您可以通过MaxCompute客户端执行show tables;命令检查视图名称正确性。

ODPS-0130241:Illegal union operation

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:无效的UNION操作。通常情况下是UNION两边列的数量及类型不一致造成的。
  • 处理方法:修改UNION语句,满足UNION语法要求。更多UNION信息,请参见并集

ODPS-0130252:Cartesian product is not allowed

  • 模块:PARSER。
  • 严重等级:2。
  • 触发条件:不支持笛卡尔积。
  • 处理方法:MaxCompute在JOIN操作的关联条件中不支持不等值表达式。

ODPS-0130261:Invalid schema

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:非法的Schema。
  • 处理方法:修改Schema。

ODPS-0130271:Partition does not exist

  • 模块:PARSER。
  • 严重等级:1。
  • 触发条件:分区不存在。
  • 处理方法:您可以通过MaxCompute客户端执行show partitions <table_name>;命令查询已存在的分区值,修改语句中的分区为已存在的分区。

ODPS-0140011:Illegal type cast

  • 模块:PLANNER。
  • 严重等级:1。
  • 触发条件:不允许的显式类型转换。
  • 处理方法:修改类型转换机制。更多显示类型转换信息,请参见显式类型转换

ODPS-0140021:Illegal implicit type cast

  • 模块:PLANNER。
  • 严重等级:1。
  • 触发条件:不允许的隐式类型转换。
  • 处理方法:修改类型转换机制。更多隐式类型转换信息,请参见隐式类型转换及其作用域

ODPS-0140031:Invalid column reference

  • 模块:PLANNER。
  • 严重等级:1。
  • 触发条件:无效的列名。
  • 处理方法:您可以通过MaxCompute客户端执行desc <table_name>;获取正确的列名称。

ODPS-0140041:Invalid UDF reference

  • 模块:PLANNER。
  • 严重等级:1。
  • 触发条件:使用的UDF不存在。
  • 处理方法:您可以通过MaxCompute客户端执行list functions;命令查看正确的UDF名称。

ODPS-0140051:Invalid function

  • 模块:PLANNER。
  • 严重等级:1。
  • 触发条件:非法函数。
  • 处理方法:您可以通过MaxCompute客户端执行show functions;list functions;命令查看正确的函数名称。

ODPS-0140061:Invalid parameters

  • 模块:PLANNER。
  • 严重等级:1。
  • 触发条件:输入参数异常。
  • 处理方法:修改入参。

ODPS-0140071:Unsupported operator

  • 模块:PLANNER。
  • 严重等级:1。
  • 触发条件:不支持的运算符。
  • 处理方法:修改运算符为支持的运算符。更多运算符信息,请参见运算符

ODPS-0140081:Unsupported join type

  • 模块:PLANNER。
  • 严重等级:1。
  • 触发条件:小表 (Left)Outer Join大表或者大表(Right) Outer Join小表。
  • 处理方法:修改连接顺序。

ODPS-0140105:Invalid multiple I/O

  • 模块:PLANNER。
  • 严重等级:5。
  • 触发条件:多路输出冲突。
  • 处理方法:调整作业,避免多路输出冲突。

ODPS-0140111:Unsupported col type in EXTRACT now

  • 模块:PLANNER。
  • 严重等级:1。
  • 触发条件:EXTRACT不支持的列类型。
  • 处理方法:修改为支持的列类型。

ODPS-0140133:Invalid structure

  • 模块:PLANNER。
  • 严重等级:3。
  • 触发条件:无法识别数据结构。
  • 处理方法:确认数据结构的规范性。

ODPS-0140151:Can not do topologic sort, the stages is not a DAG

  • 模块:PLANNER。
  • 严重等级:1。
  • 触发条件:排序算法出现错误。
  • 处理方法:检查排序算法正确性。

ODPS-0140178: Internal system failure

  • 模块:PLANNER。
  • 严重等级:8。
  • 触发条件:系统异常。
  • 处理方法:重试。

ODPS-1800001: Session exception - Failed to submit sub-query in session because:Prepaid project run out of free query quota

  • 模块:不涉及。
  • 严重等级:不涉及。
  • 触发条件:使用JDBC连接MaxCompute运行包年包月资源的任务,并使用MCQA功能,作业数超过500个时,会报错。
  • 处理方法:修改JDBC启用MCQA功能的配置,设置alwaysFallback参数值为true。详情参见常见问题