- Kategorien:
Zeichenfolgen- und Binärfunktionen (Allgemein)
PARSE_URL¶
Gibt ein JSON-Objekt zurück, das aus allen Komponenten (Fragment, Host, Pfad, Port, Abfrage, Schema) in einer gültigen Eingabe URL/URIbesteht.
Syntax¶
PARSE_URL(<string>, [<permissive>])
Argumente¶
Benötigt:
string
Zu analysierende Zeichenfolge.
Optional:
permissive
Flag, das darüber bestimmt, wie Analysefehler behandelt werden:
Bei Auswahl von 0 führen Fehler bei der Analyse dazu, dass die Funktion fehlschlägt.
Bei Auswahl von 1 wird bei Analysefehlern ein Objekt erzeugt, in dem das Feld
error
auf die entsprechende Fehlermeldung (und keine anderen Felder) gesetzt ist.
Der Standardwert ist 0.
Rückgabewerte¶
Der Datentyp des zurückgegebenen Werts ist OBJECT
. Das Objekt enthält JSON.
Beispiele¶
Analysieren Sie eine einfache URL:
SELECT PARSE_URL('https://www.snowflake.com/'); +-----------------------------------------+ | PARSE_URL('HTTPS://WWW.SNOWFLAKE.COM/') | |-----------------------------------------| | { | | "fragment": null, | | "host": "www.snowflake.com", | | "parameters": null, | | "path": "", | | "port": null, | | "query": null, | | "scheme": "https" | | } | +-----------------------------------------+
Analysieren Sie eine URL, die einen Pfad und eine Portnummer enthält:
SELECT PARSE_URL('HTTP://USER:PASS@EXAMPLE.INT:4345/HELLO.PHP?USER=1'); +-----------------------------------------------------------------+ | PARSE_URL('HTTP://USER:PASS@EXAMPLE.INT:4345/HELLO.PHP?USER=1') | |-----------------------------------------------------------------| | { | | "fragment": null, | | "host": "USER:PASS@EXAMPLE.INT", | | "parameters": { | | "USER": "1" | | }, | | "path": "HELLO.PHP", | | "port": "4345", | | "query": "USER=1", | | "scheme": "HTTP" | | } | +-----------------------------------------------------------------+
Analysieren Sie eine E-Mail-URL:
SELECT PARSE_URL('mailto:abc@xyz.com'); +---------------------------------+ | PARSE_URL('MAILTO:ABC@XYZ.COM') | |---------------------------------| | { | | "fragment": null, | | "host": null, | | "parameters": null, | | "path": "abc@xyz.com", | | "port": null, | | "query": null, | | "scheme": "mailto" | | } | +---------------------------------+
Analysieren Sie eine ungültige URL, bei der das Schema fehlt. Setzen Sie den permissive
Parameter auf 0, um anzuzeigen, dass die Funktion fehlschlagen soll, wenn die Eingabe ungültig ist:
SELECT PARSE_URL('example.int/hello.php?user=12#nofragment', 0);100139 (22000): Error parsing URL: scheme not specified
Analysieren Sie eine ungültige URL, wobei der permissive
Parameter auf 1 gesetzt ist, um anzugeben, dass die Funktion ein Objekt zurückgeben soll, das die Fehlermeldung im JSON-Format enthält:
SELECT PARSE_URL('example.int/hello.php?user=12#nofragment', 1); +----------------------------------------------------------+ | PARSE_URL('EXAMPLE.INT/HELLO.PHP?USER=12#NOFRAGMENT', 1) | |----------------------------------------------------------| | { | | "error": "scheme not specified" | | } | +----------------------------------------------------------+