SnowConvert AI - Vertica - Différences d’identificateurs entre Vertica et Snowflake¶
Identificateurs avec guillemets¶
In Vertica, quoted identifiers stick to the case sensitivity rules, which means that, for example, column names are still case insensitive even when quoted. Thus, identifiers "ABC", "ABc", and "aBc" are synonymous, as are ABC, ABc, and aBc :
Vertica¶
CREATE TABLE test.quotedIdentTable
(
"col#1" INTEGER
);
SELECT "col#1" FROM test.quotedIdentTable;
SELECT "COL#1" FROM test.quotedIdentTable;
Dans Snowflake, la sensibilité à la casse des identificateurs entre guillemets dépend du paramètre de session QUOTED_IDENTIFIERS_IGNORE_CASE. Par défaut, la comparaison des identificateurs entre guillemets est sensible à la casse. Cela signifie que le code de résultat de la migration de l’exemple ci-dessus :
Snowflake¶
CREATE TABLE test.quotedIdentTable
(
"col#1" INTEGER
);
SELECT
"col#1"
FROM
test.quotedIdentTable;
SELECT
"COL#1"
FROM
test.quotedIdentTable;
Échouera lors de l’exécution de la deuxième sélection, à moins que le paramètre de session ne soit défini sur TRUE.
Comment SnowConvert AI migre les identificateurs entre guillemets¶
SnowConvert AI will analyze quoted identifiers to determine if they contain non-alphanumeric characters or are reserved words in Snowflake, if they do SnowConvert AI will leave them as they are, alphanumeric identifiers will be left unquoted:
Vertica¶
CREATE TABLE test.identsTable1
(
"col#1" INTEGER,
"col2" INTEGER
);
-- Group is a reserved word
SELECT
"col#1" AS "group",
"col2" AS "hello"
FROM
test.identsTable1;
Snowflake¶
CREATE TABLE test.identsTable1
(
"col#1" INTEGER,
col2 INTEGER
);
-- Group is a reserved word
SELECT
"col#1" AS "group",
col2 AS hello
FROM
test.identsTable1;