类别:

上下文函数 (通用)

SYS_CONTEXT(SNOWFLAKE$APPLICATION 命名空间)

返回有关在 Snowflake Native App 中执行语句的上下文的信息。

您可以在以下上下文中调用此函数:

  • 已配置为使用 所有者权限 的存储过程或 Streamlit 应用程序,且其位于或归属于 Snowflake Native App。

  • Snowflake Native App 所拥有的 UDF、视图或策略。

  • 属于 Snowflake Native App 的 共享数据内容 的 UDF、视图或策略

在任何其他上下文中,该函数返回 NULL。

另请参阅:

SYS_CONTEXTSYS_CONTEXT(SNOWFLAKE$ENVIRONMENT 命名空间)SYS_CONTEXT(SNOWFLAKE$ORGANIZATION 命名空间)SYS_CONTEXT(SNOWFLAKE$ORGANIZATION_SESSION 命名空间)SYS_CONTEXT(SNOWFLAKE$SESSION 命名空间)IS_APPLICATION_ROLE_ACTIVATED(SYS_CONTEXT 函数)

语法

用来检索属性的语法:

SYS_CONTEXT(
  'SNOWFLAKE$APPLICATION' ,
  '<property>'
)
Copy

用来调用函数的语法:

SYS_CONTEXT(
  'SNOWFLAKE$APPLICATION' ,
  '<function>' , '<argument>' [ , ... ]
)
Copy

实参

'SNOWFLAKE$APPLICATION'

指定要检索属性或调用函数以返回有关调用该函数的应用程序的上下文信息。

'property'

要检索的属性的名称。您可以指定以下属性:

属性

描述

NAME

应用程序的名称。

CURRENT_VERSION

应用程序的当前版本,其中当前 SQL 语句已执行。

CURRENT_VERSION 属性的值可以不同于以下情况下的 INSTALLED_VERSION 属性:

  • SQL 语句在将应用程序升级到新版本的 安装脚本 中执行。

    在这种情况下,CURRENT_VERSION 是新版本,INSTALLED_VERSION 是当前安装的正在升级的版本。

  • 在升级完成之前开始执行长时间运行的过程或查询。

    在这种情况下,CURRENT_VERSION 是过程或查询开始执行时的版本,INSTALLED_VERSION 是升级完成后的版本。

CURRENT_PATCH

应用程序的当前补丁号,其中当前 SQL 语句已执行。

INSTALLED_VERSION

已安装的应用程序版本,其中当前 SQL 语句已执行。

INSTALLED_PATCH

已安装的应用程序补丁号,其中当前 SQL 语句已执行。

IS_DEV_MODE

如果应用程序处于 开发模式,则为 TRUE;否则为 FALSE

要将此值与 BOOLEAN 值 TRUE 或 FALSE 进行比较,请将值 转换 为 BOOLEAN。例如:

SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'IS_DEV_MODE')::BOOLEAN = TRUE;
Copy
'function'

要调用的函数的名称。您可以调用以下函数:

'argument' [ , ... ]

要传递给要调用的函数的实参。

返回

该函数会返回 VARCHAR 值或 NULL:

使用说明

  • 如果您在 Shell 的双引号字符串中指定函数调用,请使用反斜杠 (\) 转义 $ 字符,以免 $APPLICATION 被解释为 Shell 变量。

    例如,如果您使用的是 Snowflake CLI,并且您 指定 SQL 语句作为命令行实参 放在双引号里:

    snow sql --query "SELECT SYS_CONTEXT('SNOWFLAKE\$APPLICATION', 'NAME');"
    
    Copy

示例

以下示例返回了应用程序的当前版本:

SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'CURRENT_VERSION');
Copy
语言: 中文