flink-user-zh mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Leonard Xu <xbjt...@gmail.com>
Subject Re: flink sql string char 不兼容?
Date Tue, 21 Apr 2020 13:00:57 GMT
Hi

CHAR(n) 、VARCHAR 在SQL语义里是不同的类型,SQL里写的 ‘false’ 常量会解析到CHAR(n)
因为常量长度已经确定会选择使用CHAR(n),
目前是Flink还不支持CHAR(n) 和 VARCHAR 类型之间的隐式转换,所以类型检查会报错,你可以先用CAST(‘false’
as VARCHAR)后处理。

祝好
Leonard

> 在 2020年4月21日,18:32,王双利 <allon2@163.com> 写道:
> 
> hit声明的是varchar,现在是,'false'  编译的时候认为是char(4) ,导致类型不匹配
> 
> 
> 
> 王双利
> 
> 发件人: Leonard Xu
> 发送时间: 2020-04-21 18:29
> 收件人: user-zh
> 主题: Re: flink sql string char 不兼容?
> Hi 
> Sink 对应的字段(taskid\hit)需要声明成varchar, 现在不支持varchar类型写入char(n)
> 
> 祝好,
> Leonard Xu
> 
>> 在 2020年4月21日,18:20,王双利 <allon2@163.com> 写道:
>> 
>> 下面的sql 执行的时候报 下面的错误CREATE TABLE  target (
>>   jnlno VARCHAR,
>> --     taskid char(9),
>> --     hit char(4)
>>  taskid VARCHAR,
>>   hit VARCHAR
>> ) 
>> insert into  target select  a.jnlno,'111111qeq','false' from loginevent a
>> 
>> Exception in thread "main" org.apache.flink.table.api.ValidationException: Type STRING
of table field 'hit' does not match with the physical type CHAR(4) of the 'EXPR$2' field of
the TableSink consumed type.
>> 
>> Flink 版本 1.10
>> 怎么解决呢?Flink sql的 string char 不兼容?
>> sql应该怎么写合适呢?


Mime
View raw message