バインド変数: 一部の組み込みテーブル関数ではパラメーターとして無視されない¶
Snowflake スクリプト 、 ドライバー 、または SQL REST API では、 SQL ステートメントでバインド変数を使用できます。(バインド変数の使用例については、 SQL ステートメントでの変数の使用(バインド) 、 データのバインド 、および ステートメントでのバインド変数の使用 を参照してください。
この動作変更は、 未満の組み込みテーブル関数の引数 の1つとしてバインド変数を直接渡す場合に影響します。動作は次のように変化します。
- 変更前:
バインド変数は無視され、引数はテーブル関数に渡されません。
- AFter 変更:
バインド変数はテーブル関数の引数として渡されます。
テーブル関数の引数に結果を渡す前に、バインド変数を別の関数に渡すようなケースには影響しないことに注意してください。例えば、 COPY_HISTORY 関数を呼び出す場合、この変更は START_TIME 引数としてバインド変数を直接渡す場合に影響します。
COPY_HISTORY( START_TIME=> ?, ...
これは、バインド変数を先に別の組み込み関数に渡す場合には影響しません。
COPY_HISTORY( START_TIME=> DATEADD('days', ?, ...
変更前の動作を維持したい場合は、バインド変数を使う引数を渡さないようにコードを書き直します。例えば、 TASK_HISTORY 関数を呼び出していて、結果を特定のタスクでフィルタリングしたくない場合は、呼び出しから TASK_NAME 引数を省略します。
以下の表関数引数は、この変更の影響を受けます。
テーブル関数 |
影響を受けた引数 |
---|---|
OBJECT_TYPE |
|
OBJECT_NAME |
|
TABLE_NAME |
|
START_TIME |
|
ROOT_TASK_NAME |
|
RESULT_LIMIT |
|
TABLE_NAME |
|
LOCATION |
|
FILE_FORMAT |
|
FILES |
|
POLICY_NAME |
|
REF_ENTITY_NAME |
|
REF_ENTITY_DOMAIN |
|
END_TIME_RANGE_START |
|
END_TIME_RANGE_END |
|
RESULT_LIMIT |
|
SESSION_ID |
|
RESULT_LIMIT |
|
USER_NAME |
|
WAREHOUSE_NAME |
|
END_TIME_RANGE_START |
|
END_TIME_RANGE_END |
|
RESULT_LIMIT |
|
OBJECT_NAME ( |
|
TASK_NAME |
|
RESULT_LIMIT |
|
TASK_NAME |
|
DATE_RANGE_START |
|
DATE_RANGE_END |
|
WAREHOUSE_NAME |
|
DATE_RANGE_START |
|
DATE_RANGE_END |
参照: 1410