Snowflake: File format does not exist

Für das Laden von Dateien gibt es in Snowflake den COPY INTO Befehl. Der Befehl ist dazu gedacht – mit Hilfe eines File Formats – Daten aus der Datei in eine Tabelle zu kopieren. Aber auch ohne die Daten zu laden kann man einfache Selects auf Dateien ausführen.

Syntax eines einfachen Copy Into Befehls:

COPY INTO MyTable(Column01, Column02, Column03)
FROM (
SELECT $1, $2, $3 
FROM '@MyStage/folder01'
) 
FILE_FORMAT = CSVFILEFORMAT
PATTERN= '.*\.csv$' ;  

Die Syntax für die Verwendung in einem Select ist ähnlich, aber dann doch wenig intuitiv:

SELECT $1, $2, $3 FROM '@MyStage/folder01'         (         --FILE_FORMAT =>  CSVFILEFORMAT, --falsch         FILE_FORMAT =>  'CSVFILEFORMAT', --richtig         PATTERN => '.*\.csv         ) 

Cheat-Sheet:

  • Angaben zum File Format, Pattern etc stehen nun in Klammern nach dem FROM
  • Die „=“ werden zu „=>“
  • Die Zeilen müssen durch Kommas getrennt werden
  • Das FileFormat muss nun in Hochkommas stehen.

Wer diesen letzten Punkt ignoriert erhält die verwirrende Fehlermeldung

SQL-Fehler [2003] [02000]: SQL compilation error:
File format 'CSVDATEN' does not exist.
Dieser Beitrag wurde unter Snowflake Computing veröffentlicht. Setze ein Lesezeichen auf den Permalink.