1

我在 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

如果我自己只执行视图的选择部分,它工作正常。我尝试强制转换输出字段,但似乎没有太大区别。

4

1 回答 1

3

默认情况下,Flex 表中的数据存储为LONG VARBINARY默认原始大小为 130000。由于此数据长于VARCHAR(65000) 的最大长度,因此您需要截断您的结果COALESCE或尝试将其转换为::long varchar. 如果后者有效,请注意 Vertica 不支持对此内容类型的操作。

于 2015-03-20T23:03:53.557 回答