ODPS-0123091

本文为您介绍错误码ODPS-0123091:Illegal type cast的报错场景,并提供对应的解决方案。

错误:in function cast, value 'xx' cannot be casted from yy to zz

错误信息示例

ODPS-0123091:Illegal type cast - in function cast, value 'xx' cannot be casted from YY to ZZ

问题描述

执行数据类型转换的时候出错,大多数情况下是由输入的数据不合法导致的。关于MC的数据类型转换,可以参考如下文档:数据类型转换

解决方案

检查输入数据,必要时先对输入数据进行清洗处理。假如想忽略错误,可以将当前处理模式修改为非严格模式。

Query示例

--准备数据
CREATE TABLE mc_test
(
  a string
);
INSERT overwrite TABLE mc_test
VALUES ('100'), ('-');

--设置当前处理模式为严格模式,集团内部的flag是odps.sql.udf.strict.mode=true,中国公共云对应的flag是odps.function.strictmode
SET odps.sql.udf.strict.mode=true;
--错误,因为输入数据'-'不能cast成bigint而且当前工作在strict模式。
SELECT cast(a AS bigint)
FROM mc_test;

FAILED: ODPS-0123091:Illegal type cast - in function cast, value '-' cannot be casted from String to Bigint