Quando si virtualizzano le tabelle in un'origine dati 'Snowflake, Data Virtualization converte i dati con i tipi STRING, TEXT e VARCHAR nel tipo CLOB invece che nel tipo VARCHAR quando superano la lunghezza massima della stringa.
Sintomi
Quando si virtualizza una tabella Snowflake che contiene tipi di dati STRING, TEXT e VARCHAR che superano la lunghezza massima predefinita di 32 K per il parametro MaxStringSize , il tipo di dati della colonna viene convertito in CLOB.
Snowflake indica una lunghezza massima di 16.777.216 per i tipi STRING, TEXT e VARCHAR se la lunghezza massima non è definita dall'utente. Pertanto, la Data Virtualization virtualizza il tipo di dati a una lunghezza specifica per evitare il troncamento. Tuttavia, è possibile regolare la lunghezza massima della stringa di questi tipi di dati per evitare la conversione in CLOB impostando la dimensione della stringa su un valore inferiore a 32 K.
Il seguente esempio proviene da una tabella Snowflake con stringhe in cui è possibile modificare il tipo di colonna in una lunghezza adatta per l'aggregazione.
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.
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
Risoluzione del problema
VARCHAR(200)
viene utilizzato ma è possibile scegliere ciò che è appropriato per la lunghezza massima dei tuoi dati.alter nickname TESTDATA.BASIC_STRING alter column "c_str" local type VARCHAR(200);
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.