TRY_TO_FILE

Uma versão de TO_FILE que retorna NULL em vez de gerar um erro.

Sintaxe

Use uma das seguintes opções:

TRY_TO_FILE( <stage_name>, <relative_path> )

TRY_TO_FILE( <file_url> )

TRY_TO_FILE( <metadata> )

Argumentos

Especifique o arquivo fornecendo:

  • stage_name e relative_path

  • file_url

  • metadata

Apenas um desses métodos pode ser usado por vez.

stage_name

O nome do estágio em que o arquivo está localizado, como uma cadeia de caracteres, no formato '@stage_name'.

relative_path

O caminho para o arquivo no estágio especificado por stage_name como uma cadeia de caracteres.

file_url

Um URL de arquivo com escopo ou estágio válido como uma cadeia de caracteres.

metadata

Um OBJECT contendo os atributos FILE necessários. Um FILE deve ter os campos CONTENT_TYPE, SIZE, ETAG e LAST_MODIFIED. Ele também deve especificar a localização do arquivo de uma das seguintes maneiras:

  • Tanto STAGE quanto RELATIVE_PATH

  • STAGE_FILE_URL

  • SCOPED_FILE_URL

Retornos

Um FILE ou NULL.

Notas de uso

Retorna NULL quando:

  • O URL fornecido não é válido.

  • O arquivo está em uma área de preparação ao qual o usuário não tem privilégios de acesso.

  • Os metadados fornecidos não contêm os campos obrigatórios do FILE.

Exemplos

Ao contrário de TO_FILE, que gera um erro em argumentos inválidos, TRY_TO_FILE retorna NULL nesta situação. Caso contrário, funciona exatamente como TO_FILE.

O exemplo abaixo ilustra o comportamento de TRY_TO_FILE quando recebe um caminho de arquivo inválido, supondo que o arquivo image.png exista no área de preparação, mas os outros dois arquivos não.

SELECT
    TRY_TO_FILE('@mystage/image.png'),
    TRY_TO_FILE('@mystage/incorrect_file1.jpg'),
    TRY_TO_FILE('@mystage', 'incorrect_file2.png');
Copy

Resultado:

+-----------------------------------------------------+---------------------------------------------+------------------------------------------------+
| TRY_TO_FILE('@MYSTAGE/IMAGE.PNG')                   | TRY_TO_FILE('@MYSTAGE/INCORRECT_FILE1.JPG') | TRY_TO_FILE('@MYSTAGE', 'INCORRECT_FILE2.PNG') |
|-----------------------------------------------------|---------------------------------------------|------------------------------------------------|
| {                                                   | NULL                                        | NULL                                           |
|   "CONTENT_TYPE": "image/png",                      |                                             |                                                |
|   "ETAG": "2859efde6e26491810f619668280a2ce",       |                                             |                                                |
|   "LAST_MODIFIED": "Thu, 18 Sep 2025 09:02:00 GMT", |                                             |                                                |
|   "RELATIVE_PATH": "image.png",                     |                                             |                                                |
|   "SIZE": 23698,                                    |                                             |                                                |
|   "STAGE": "@MYDB.MYSCHEMA.MYSTAGE"                 |                                             |                                                |
| }                                                   |                                             |                                                |
+-----------------------------------------------------+---------------------------------------------+------------------------------------------------+

Para ver mais exemplos de criação de objetos FILE a partir de entradas válidas, consulte Exemplos de TO_FILE.