コンテキスト関数¶
この関数ファミリーを使用して、ステートメントが実行されるコンテキストに関する情報を収集できます。これらの関数は、ステートメントごとに最大1回評価されます。
このトピックの内容:
関数のリスト¶
サブカテゴリ |
関数 |
メモ |
---|---|---|
一般的なコンテキスト |
||
CURRENT_TIMESTAMP のエイリアス。 |
||
CURRENT_TIME のエイリアス。 |
||
CURRENT_TIMESTAMP のエイリアス。 |
||
セッションコンテキスト |
||
アカウントロケーターを返します。 |
||
アカウント名を返します。 |
||
セッション オブジェクト コンテキスト |
||
アラート コンテキスト |
使用上の注意¶
コンテキスト関数は通常、引数を必要としません。
ANSI 標準に準拠するために、 SQL ステートメントで次のコンテキスト関数を括弧なしで呼び出すことができます。
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_USER
LOCALTIME
LOCALTIMESTAMP
注釈
Snowflake Scripting 変数 を、これらの関数のいずれかを呼び出す式に設定する場合(たとえば、
my_var := < function_name >();
)、括弧を含める必要があります。
例¶
セッションの現在のウェアハウス、データベース、スキーマを表示します。
SELECT CURRENT_WAREHOUSE(), CURRENT_DATABASE(), CURRENT_SCHEMA();
+---------------------+--------------------+------------------+
| CURRENT_WAREHOUSE() | CURRENT_DATABASE() | CURRENT_SCHEMA() |
|---------------------+--------------------+------------------+
| MY_WAREHOUSE | MY_DB | PUBLIC |
|---------------------+--------------------+------------------+
現在の日付、時刻、タイムスタンプを表示します(これらの関数を呼び出すために括弧は必要ありません)。
SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;
+--------------+--------------+-------------------------------+
| CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP |
|--------------+--------------+-------------------------------|
| 2024-06-07 | 10:45:15 | 2024-06-07 10:45:15.064 -0700 |
+--------------+--------------+-------------------------------+
Snowflake Scripting ブロックで、 SQL ステートメント内の変数を設定するために、CURRENT_DATE 関数を括弧なしで呼び出します。
EXECUTE IMMEDIATE
$$
DECLARE
currdate DATE;
BEGIN
SELECT CURRENT_DATE INTO currdate;
RETURN currdate;
END;
$$
;
+-----------------+
| anonymous block |
|-----------------|
| 2024-06-07 |
+-----------------+
Snowflake Scripting ブロックで、 CURRENT_DATE 関数を括弧なしで呼び出す式に変数を設定しようとすると、エラーになります:
EXECUTE IMMEDIATE
$$
DECLARE
today DATE;
BEGIN
today := CURRENT_DATE;
RETURN today;
END;
$$
;
000904 (42000): SQL compilation error: error line 5 at position 11
invalid identifier 'CURRENT_DATE'
同じブロックは、括弧を付けて関数を呼び出すと、現在の日付を返します:
EXECUTE IMMEDIATE
$$
DECLARE
today DATE;
BEGIN
today := CURRENT_DATE();
RETURN today;
END;
$$
;
+-----------------+
| anonymous block |
|-----------------|
| 2024-06-07 |
+-----------------+