TRY_TO_FILE

TO_FILE 的一个版本,遇到错误时返回 NULL 而不是引发错误。

语法

使用下列之一:

TRY_TO_FILE( <stage_name>, <relative_path> )

TRY_TO_FILE( <file_url> )

TRY_TO_FILE( <metadata> )

实参

通过提供以下内容来指定文件:

  • Both stage_name and relative_path

  • file_url

  • metadata

一次只能使用其中一种方法。

stage_name

文件所在暂存区的名称,以 '@stage_name' 形式的字符串表示。

relative_path

暂存区上文件的路径,由 stage_name 以字符串形式指定。

file_url

字符串形式的有效暂存区或作用域文件 URL。

metadata

An OBJECT containing the required FILE attributes. A FILE must have CONTENT_TYPE, SIZE, ETAG, and LAST_MODIFIED fields. It must also specify the file's location in one of the following ways:

  • STAGE 和 RELATIVE_PATH

  • STAGE_FILE_URL

  • SCOPED_FILE_URL

返回

:doc:` FILE </sql-reference/data-types-unstructured>` 或 NULL。

使用说明

在以下情况下返回 NULL:

  • 提供的 URL 无效。

  • The file is on a stage that the user lacks privileges to access.

  • 提供的元数据不包含必填 FILE 字段。

示例

与 TO_FILE 在遇到无效实参时会抛出错误不同,TRY_TO_FILE 在此种情况下会返回 NULL。除此之外,它的功能与 TO_FILE 完全一致。

下面的示例演示了当 TRY_TO_FILE 函数遇到无效文件路径时的行为,假设文件 image.png 存在于暂存区中,而另外两个文件不存在。

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

结果:

+-----------------------------------------------------+---------------------------------------------+------------------------------------------------+
| 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"                 |                                             |                                                |
| }                                                   |                                             |                                                |
+-----------------------------------------------------+---------------------------------------------+------------------------------------------------+

有关从有效输入创建 FILE 对象的更多示例,请参阅 TO_FILE 示例

语言: 中文