本文为您介绍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数据类型开关:
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。详情参见常见问题。