- Catégories :
PARSE_URL¶
Retourne un objet JSON composé de tous les composants (fragment, hôte, chemin, port, requête, schéma) dans une entrée URL/URI valide.
Syntaxe¶
PARSE_URL(<string>, [<permissive>])
Arguments¶
Obligatoire :
string
Chaîne à analyser.
Facultatif :
permissive
Drapeau déterminant comment les erreurs d’analyse sont traitées :
Si la valeur est définie sur 0, les erreurs d’analyse entraînent l’échec de la fonction.
Si la valeur est définie sur 1, les erreurs d’analyse génèrent un objet dont le champ
error
est défini sur le message d’erreur correspondant (et aucun autre champ défini).
La valeur par défaut est 0.
Renvoie¶
Le type de données de la valeur renvoyée est OBJECT
. L’objet contient JSON.
Exemples¶
Analyser une URL simple :
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" | | } | +-----------------------------------------+
Analyser une URL comprenant un chemin d’accès et un numéro de port :
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" | | } | +-----------------------------------------------------------------+
Analyser une URL d’email :
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" | | } | +---------------------------------+
Analyser une URL non valide qui manque le schéma. Définissez le paramètre permissive
sur 0 pour indiquer que la fonction doit échouer si l’entrée n’est pas valide :
SELECT PARSE_URL('example.int/hello.php?user=12#nofragment', 0);100139 (22000): Error parsing URL: scheme not specified
Analyser une URL non valide, avec le paramètre permissive
défini sur 1 pour indiquer que la fonction doit renvoyer un objet contenant le message d’erreur au format JSON :
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" | | } | +----------------------------------------------------------+