Loading

Der umgekehrte Schrägstrich als Escape-Zeichen funktioniert nicht, wenn Parameter zum Festlegen regulärer Ausdrücke in benutzerdefiniertem SQL verwendet werden (Google BigQuery).

Veröffentlichungsdatum: Aug 24, 2022
Beschreibung
Ein umgekehrter Schrägstrich als Escape-Zeichen in einem Parameter funktioniert nicht wie erwartet, wenn ein regulärer Ausdruck in benutzerdefiniertem SQL in Google BigQuery verwendet wird.

Beispiele:

-Beispieldaten [Tabelle]:
Spalte
aa
a.

-Benutzerdefiniertes SQL:
* in der Tabelle mit regexp_contains(Spalte,r<Parameter>) auswählen

-Parameter:
a\.

-Erwartetes Ergebnis:
Spalte
a.

-Tatsächliches Ergebnis:
Kein Datensatz zurückgegeben

* Wenn der Parameter als 'a.' ohne umgekehrten Schrägstrich gesetzt wird, lautet das Ergebnis 
Spalte
aa
a.


 

Cause

Dies liegt an der Syntax des regulären Ausdrucks, die in Google BigQuery verwendet wird (siehe unten):
REGEXP_CONTAINS(sample, r"@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+")
https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#regexp_contains

Beachten Sie, dass dem regulären Ausdruck ein 'r' vorangestellt ist.
Wenn jedoch ein Parameter zum Festlegen eines regulären Ausdrucks verwendet wird, funktioniert ein umgekehrter Schrägstrich als Escape-Zeichen nicht wie erwartet.
Wenn das 'r' entfernt wird, funktioniert der umgekehrte Schrägstrich als Escape-Zeichen wie erwartet.
Lösung
Ändern des benutzerdefinierten SQL
---------------------
* in der Tabelle mit regexp_contains(Spalte,r<Parameter>) auswählen
---------------------
Zu
---------------------
* in der Tabelle mit regexp_contains(Spalte,<Parameter>) auswählen
---------------------
* 'r' entfernen
 
Nummer des Knowledge-Artikels

001474430

 
Laden
Salesforce Help | Article