DML-Befehle für Laden von Daten, Entladen von Daten und Staging von Dateien: Mustervergleiche einzelner Zeichen (Verschoben)¶
Diese Verhaltensänderung war ursprünglich für Februar 2021 geplant, wurde jedoch verschoben. Ein neues Veröffentlichungsdatum wurde noch nicht festgelegt.
Aktuelle Informationen zum Release und zu dem Datum, an dem es aktiviert wird, sowie weitere Release-bezogene Einzelheiten finden Sie im Änderungsprotokoll für Verhaltensänderungen (Behavior Change Log).
Der Parameter PATTERN filtert die Menge der Stagingdateien in der Ausgabe der folgenden DML-Befehle anhand eines regulären Ausdrucks:
COPY INTO <Speicherort>
COPY INTO <Tabelle>
GET
LIST
REMOVE
In einem zukünftigen Release wird sich das Verhalten des Parameters PATTERN wie folgt ändern:
- Jetzt:
Wenn der reguläre Ausdruck mit dem Dateipfad abgeglichen wird, wird dem Dateipfad fälschlicherweise ein zusätzlicher interner Pfad vorangestellt. Infolgedessen passen einige reguläre Ausdrücke fälschlicherweise auf Zeichen, die nicht im angegebenen internen Pfad enthalten sind.
Der Befehl LIST könnte zum Beispiel Dateinamen nach einem regulären Ausdruck PATTERN filtern, der mit dem Buchstaben „t“ übereinstimmt:
LIST @mystage pattern='.*t.*';
Diese LIST-Anweisung gibt alle Dateinamen im Stagingbereich zurück, auch wenn die Dateien nicht den Buchstaben „t“ enthalten, da der inkorrekt vorangestellte Pfad den Buchstaben „t“ enthält.
Die Ursache des Problems ist ein interner/versteckter Pfad, den die Befehle auf alle Dateien in einem Stagingbereich anwenden. Der reguläre Ausdruck PATTERN berücksichtigt diesen Pfad bei der Auswertung der Dateinamen in der Befehlsausgabe.
- Ausstehend:
Der Parameter PATTERN ignoriert den internen/versteckten Pfad bei der Auswertung der Dateinamen in der Befehlsausgabe. Der reguläre Ausdruck gleicht nur die vom Kunden erstellten Pfade und Dateinamen im Stagingbereich ab.
Ref.: 209969