绑定变量:某些内置表函数的参数不再被忽略

注意

此行为变更在 2023_08 捆绑包中。

有关捆绑包的当前状态,请参阅 捆绑包历史记录

Snowflake Scripting驱动程序SQL REST API 中,您可以在 SQL 语句中使用绑定变量。(有关使用绑定变量的示例,请参阅 在 SQL 语句中使用变量(绑定)绑定数据在语句中使用绑定变量。)

此行为变更会影响直接将绑定变量作为 下列内置表函数实参 之一传递的情况。行为变更如下所示:

变更前:

系统将忽略绑定变量,并且不会将实参传递给表函数。

变更 AFter:

绑定变量将作为实参传递给表函数。

请注意,这并不影响先将绑定变量传递给其他函数,然后再将结果传递给表函数实参的情况。例如,如果要调用 COPY_HISTORY 函数,则此更改会影响将绑定变量直接作为 START_TIME 实参传递的情况:

COPY_HISTORY( START_TIME=> ?, ...
Copy

这不会影响先将绑定变量传递给另一个内置函数的情况:

COPY_HISTORY( START_TIME=> DATEADD('days', ?, ...
Copy

如果要保留更改前的行为,可以重写代码,避免传递使用绑定变量的实参。例如,如果要调用 TASK_HISTORY 函数,并且不希望按特定任务筛选结果,可省略调用中的 TASK_NAME 实参。

以下表函数实参会受此更改的影响:

表函数

受影响的实参

AUTO_REFRESH_REGISTRATION_HISTORY

OBJECT_TYPE

OBJECT_NAME

COPY_HISTORY

TABLE_NAME

START_TIME

CURRENT_TASK_GRAPHS

ROOT_TASK_NAME

DYNAMIC_TABLE_REFRESH_HISTORY

RESULT_LIMIT

EXTERNAL_TABLE_FILE_REGISTRATION_HISTORY

TABLE_NAME

INFER_SCHEMA

LOCATION

FILE_FORMAT

FILES

POLICY_REFERENCES

POLICY_NAME

REF_ENTITY_NAME

REF_ENTITY_DOMAIN

QUERY_HISTORY

END_TIME_RANGE_START

END_TIME_RANGE_END

RESULT_LIMIT

QUERY_HISTORY_BY_SESSION

SESSION_ID

RESULT_LIMIT

QUERY_HISTORY_BY_USER

USER_NAME

QUERY_HISTORY_BY_WAREHOUSE

WAREHOUSE_NAME

END_TIME_RANGE_START

END_TIME_RANGE_END

RESULT_LIMIT

TAG_REFERENCES

OBJECT_NAME(object_name 实参)

TASK_DEPENDENTS

TASK_NAME

TASK_HISTORY

RESULT_LIMIT

TASK_NAME

WAREHOUSE_LOAD_HISTORY

DATE_RANGE_START

DATE_RANGE_END

WAREHOUSE_NAME

WAREHOUSE_METERING_HISTORY

DATE_RANGE_START

DATE_RANGE_END

参考:1410

语言: 中文