- Categorias:
PARSE_URL¶
Retorna um objeto JSON que consiste em todos os componentes (fragmento, host, caminho, porta, consulta, esquema) em uma URL/URI de entrada válida.
Sintaxe¶
PARSE_URL(<string>, [<permissive>])
Argumentos¶
Obrigatório:
string
A cadeia de caracteres a ser analisada.
Opcional:
permissive
Sinalizador que determina como os erros de análise são tratados:
Se ajustado para 0, os erros parciais fazem com que a função falhe.
Se definido como 1, erros de análise resultam em um objeto com o campo
error
definido para a respectiva mensagem de erro (e nenhum outro campo definido).
O valor padrão é 0.
Retornos¶
O tipo de dados do valor retornado é OBJECT
. O objeto contém JSON.
Exemplos¶
Analisar um URL simples:
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" | | } | +-----------------------------------------+
Analisar um URL que inclui um caminho e um número de porta:
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" | | } | +-----------------------------------------------------------------+
Analisar um URL de e-mail:
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" | | } | +---------------------------------+
Analisar um URL inválido que não está no esquema. Definir o parâmetro permissive
como 0 para indicar que a função deve falhar se a entrada for inválida:
SELECT PARSE_URL('example.int/hello.php?user=12#nofragment', 0);100139 (22000): Error parsing URL: scheme not specified
Analisar um URL inválido, com o parâmetro permissive
definido como 1 para indicar que a função deve retornar um objeto que contenha a mensagem de erro no formato 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" | | } | +----------------------------------------------------------+