SnowConvert AI Vertica – Unterschiede bei Bezeichnern zwischen Vertica und Snowflake¶
Bezeichner in Anführungszeichen¶
In Vertica halten sich Bezeichner in Anführungszeichen an die Regeln zur Unterscheidung von Groß-/Kleinschreibung, was bedeutet, dass beispielsweise bei Spaltennamen die Groß-/Kleinschreibung nicht berücksichtigt wird, selbst wenn sie in Anführungszeichen stehen. Somit sind die Bezeichner "ABC", "ABc" und "aBc" gleichbedeutend, ebenso wie ABC, ABc und aBc:
Vertica¶
CREATE TABLE test.quotedIdentTable
(
"col#1" INTEGER
);
SELECT "col#1" FROM test.quotedIdentTable;
SELECT "COL#1" FROM test.quotedIdentTable;
In Snowflake hängt die Groß-/Kleinschreibung von Bezeichnern in Anführungszeichen vom Sitzungsparameter QUOTED_IDENTIFIERS_IGNORE_CASE ab. Standardmäßig wird beim Vergleich von Bezeichnern in Anführungszeichen zwischen Groß- und Kleinschreibung unterschieden. Dies bedeutet, dass der Ergebniscode aus der Migration des obigen Beispiels:
Snowflake¶
CREATE TABLE test.quotedIdentTable
(
"col#1" INTEGER
);
SELECT
"col#1"
FROM
test.quotedIdentTable;
SELECT
"COL#1"
FROM
test.quotedIdentTable;
Bei der Ausführung der zweiten Auswahl fehlschlägt, es sei denn, der Sitzungsparameter ist auf TRUE gesetzt.
Wie SnowConvert AI Bezeichner in Anführungszeichen migriert¶
SnowConvert AI analysiert Bezeichner in Anführungszeichen, um festzustellen, ob sie nicht alphanumerische Zeichen enthalten oder ob es sich um reservierte Wörter in Snowflake handelt. Falls dies der Fall ist, belässt sie SnowConvert AI so, wie sie sind. Alphanumerische Bezeichner werden ohne Anführungszeichen verwendet:
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;