1

我的数据库(Oracle 和 Impala)中有 varchar2 字段,我想将字符串字段插入到这些字段中。我无法像往常一样将值作为字符串插入。我收到以下错误

AnalysisException:目标表“test01.testdcr”的精度可能丢失。表达式''data1 data2 data3 data4''(类型:STRING)需要为列'testVarchar2Field'转换为VARCHAR(128)

如何在插入表时将字符串变量转换为 varchar2?

4

1 回答 1

2

文档中,有一个转换函数,其工作方式如下:

select concat('Here are the first ',10,' results.'); -- Fails
select concat('Here are the first ',cast(10 as string),' results.'); -- Succeeds

他们还在其他地方陈述了另一个例子:

当您将表达式(尤其是内置函数调用)的结果插入到小的数值列(例如 INT、SMALLINT、TINYINT 或 FLOAT)中时,您可能需要使用 CAST() 表达式将值强制转换为适当的类型。Impala 不会自动从较大的类型转换为较小的类型。例如,要将余弦值插入 FLOAT 列,请在 INSERT 语句中写入 CAST(COS(angle) AS FLOAT) 以使转换显式。

它不能解决你的问题吗?

于 2016-06-17T15:20:59.950 回答