Os tipos de dados STRING, TEXT e VARCHAR nas tabelas " Snowflake são atribuídos ao tipo de dados CLOB na Data Virtualization

Quando você virtualiza tabelas em uma fonte de dados ' Snowflake, Data Virtualization converte dados com os tipos STRING, TEXT e VARCHAR para o tipo CLOB em vez do tipo VARCHAR quando eles excedem o comprimento máximo da cadeia.

Sintomas

Ao virtualizar uma tabela Snowflake que contém tipos de dados STRING, TEXT e VARCHAR que excedem o comprimento máximo padrão de sequência de 32 K para o parâmetro MaxStringSize, o tipo de dado da coluna é convertido em CLOB.

Snowflake designará um comprimento máximo de 16.777.216 para tipos STRING, TEXT e VARCHAR se o comprimento máximo não for definido pelo usuário. Portanto, Data Virtualization virtualiza o tipo de dados em um comprimento específico para evitar o truncamento. No entanto, é possível ajustar o comprimento máximo de sequência desses tipos de dados para evitar conversão para CLOB configurando o tamanho de sequência para um valor inferior a 32 K.

O exemplo a seguir é de uma tabela Snowflake com sequências nas quais é possível ajustar o tipo de coluna a um comprimento adequado para agregação.

describe table TESTDATA.BASIC_STRING;

                                Data type                     Column
Column name                     schema    Data type name      Length     Scale Nulls
------------------------------- --------- ------------------- ---------- ----- ------
c1                              SYSIBM    INTEGER                      4     0 Yes
c_chr5                          SYSIBM    CHARACTER                    5     0 Yes
c_vchr10                        SYSIBM    VARCHAR                     10     0 Yes
c_str                           SYSIBM    CLOB                     65535     0 Yes
  4 record(s) selected.
A consulta a seguir falha por causa do tipo de dados CLOB.
select "c_str", sum("c1") from TESTDATA.BASIC_STRING group by "c_str";
SQL0134N  Improper use of a string column, host variable, constant, or function "c_str".  SQLSTATE=42907

Resolvendo o problema

Você pode alterar a coluna que causa a falha na redução de seu tamanho para algo que pode ser usado na agregação. No exemplo a seguir, VARCHAR(200) é usado, mas é possível escolher o que é apropriado para o comprimento máximo dos dados.
alter nickname TESTDATA.BASIC_STRING alter column "c_str" local type VARCHAR(200);
A mesma consulta agora é bem-sucedida.
select "c_str", sum("c1") from TESTDATA.BASIC_STRING group by "c_str";

c_str                                                                                                                      2
------------------------------------------------------------------------------------------------------------ ---------------
                                                                                                                         112
                                                                                                                         382
something a little longer to test string, where we do support pushdown for aggregation                                   244
a                                                                                                                        126
9995-12-31 23:59:59.999999                                                                                               124
A STRING                                                                                                                 118
-                                                                                                                        114
0005-01-01 00:00:00.000001                                                                                               122
  8 record(s) selected.