1

vertica にフレックステーブルがあり、それに基づいてビューを作成しようとしています。

ビュー作成ステートメントは次のとおりです。

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、デフォルトの raw サイズは 130000 です。このデータは最大長VARCHAR(65000) よりも長いため、結果を切り捨てるか、COALESCEとしてキャストする必要があります::long varchar。後者が機能する場合、Vertica はこのコンテンツ タイプでの操作をサポートしていないことに注意してください。

于 2015-03-20T23:03:53.557 に答える