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;
Copy

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;
Copy

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;
Copy

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;
Copy