Snowflake-Formatierer
Formatiere SQL mit Snowflake-Regeln für $$-Strings, //-Kommentare, ::-Casts und halbstrukturierte Pfade wie src:customer.name. QUALIFY und MINUS werden als Klauseln behandelt, SELECT * EXCLUDE, RENAME und REPLACE bleiben in derselben Zeile, und ASOF JOIN beginnt eine neue Zeile. Nicht geschlossene Strings und Klammern werden mit Zeilen- und Spaltenangabe gemeldet. So können Data Engineers Warehouse-Abfragen und Skripte leichter überprüfen.
Häufig gestellte Fragen
Welche Snowflake-Syntax wird erkannt?
Strings in einfachen Anführungszeichen mit Backslash-Escapes und verdoppelten Anführungszeichen, $$-Strings mit Dollar-Begrenzern, Bezeichner in doppelten Anführungszeichen, $1-Spaltenreferenzen und ::-Casts werden erkannt. Auch die von Snowflake neben -- und /* */ unterstützten //-Zeilenkommentare bleiben erhalten.
Bleiben halbstrukturierte Pfade intakt?
Ja. Pfade wie src:customer.name oder v:items[0]::string bleiben zusammen, sodass der Zugriff auf VARIANT-Werte nie durch Leerzeichen aufgeteilt wird.
Welche Snowflake-Klauseln werden unterstützt?
QUALIFY beginnt eine eigene Zeile und MINUS wird wie die anderen Mengenoperatoren behandelt. ASOF JOIN beginnt wie andere Joins eine neue Zeile.
Wie sieht es mit SELECT * EXCLUDE aus?
EXCLUDE, RENAME, REPLACE und ILIKE bleiben in derselben Zeile wie der Stern, auf den sie sich beziehen. SELECT * EXCLUDE (secret) bleibt dadurch ein einzelner Spaltenausdruck.
Was passiert mit Prozedurrümpfen in $$?
Rümpfe von JavaScript-, Python- oder Snowflake Scripting-Prozeduren zwischen $$-Markern bleiben exakt so erhalten, wie sie geschrieben wurden. Für Snowflake sind sie Strings; eine Neuformatierung könnte daher den Code ändern.
Wird MERGE unterstützt?
Ja. WHEN MATCHED- und WHEN NOT MATCHED-Zweige beginnen jeweils eine neue Zeile.
Ändert das die Groß- und Kleinschreibung von Schlüsselwörtern?
Nein. Schlüsselwörter und Namen behalten die Schreibweise bei, die du eingegeben hast. Bezeichner in Anführungszeichen unterscheiden in Snowflake Groß- und Kleinschreibung und werden nie verändert.
Welche Fehler werden erkannt?
Nicht geschlossene Strings, $$-Strings, Bezeichner in Anführungszeichen und Blockkommentare sowie nicht ausgeglichene Klammern werden jeweils mit Zeilen- und Spaltenangabe gemeldet. Nichts wird an dein Warehouse gesendet.
Wie groß darf die Eingabe sein?
Bis zu 1 MB pro Anfrage und 128 KB pro Anweisung. Arbeitsblätter mit vielen Anweisungen werden einzeln formatiert.
Kann ich die Einrückung auswählen, und wird mein SQL gespeichert?
Verwende 2 oder 4 Leerzeichen oder Tabulatoren. Der SQL wird nur im Arbeitsspeicher formatiert und nie gespeichert.