我在vertica中有一个flextable,我正在尝试基于它创建一个视图。
这是创建视图语句:
CREATE VIEW testview AS
SELECT
COALESCE (
"USER_ID",
"userId",
"SM.actor.id",
"SM.participant.userId",
"SM.userId",
"SM.uid",
"SM_C.userId",
"SM.id" )::varchar AS userid
FROM
flex_table_test
WHERE "SM.verb" is not null
我可以成功创建视图,但是当我执行类似:
的操作时SELECT * FROM testview LIMIT 10;
我明白了:
错误3852:类型varchar的长度不能超过65000
如果我自己只执行视图的选择部分,它可以正常工作。我尝试了输出输出字段,但它似乎没有什么区别。
答案 0 :(得分:3)
默认情况下,Flex表中的数据存储为LONG VARBINARY
,其默认原始大小为130000.由于此数据长于VARCHAR
(65000)的最大长度,因此您需要截断COALESCE
的结果或尝试将其转换为::long varchar
。如果后者有效,请注意Vertica不支持对此内容类型的操作。