コンテキスト関数

この関数ファミリーを使用して、ステートメントが実行されるコンテキストに関する情報を収集できます。これらの関数は、ステートメントごとに最大1回評価されます。

このトピックの内容:

関数のリスト

サブカテゴリ

関数

メモ

一般的なコンテキスト

CURRENT_CLIENT

CURRENT_DATE

CURRENT_IP_ADDRESS

CURRENT_REGION

CURRENT_TIME

CURRENT_TIMESTAMP

CURRENT_VERSION

GETDATE

CURRENT_TIMESTAMP のエイリアス。

LOCALTIME

CURRENT_TIME のエイリアス。

LOCALTIMESTAMP

CURRENT_TIMESTAMP のエイリアス。

SYSDATE

SYSTIMESTAMP

セッションコンテキスト

ALL_USER_NAMES

CURRENT_ACCOUNT

アカウントロケーターを返します。

CURRENT_ACCOUNT_NAME

アカウント名を返します。

CURRENT_ORGANIZATION_NAME

CURRENT_ROLE

CURRENT_AVAILABLE_ROLES

CURRENT_SECONDARY_ROLES

CURRENT_SESSION

CURRENT_STATEMENT

CURRENT_TRANSACTION

CURRENT_USER

GETVARIABLE

LAST_QUERY_ID

LAST_TRANSACTION

セッション オブジェクト コンテキスト

CURRENT_DATABASE

CURRENT_ROLE_TYPE

CURRENT_SCHEMA

CURRENT_SCHEMAS

CURRENT_WAREHOUSE

INVOKER_ROLE

INVOKER_SHARE

IS_APPLICATION_ROLE_IN_SESSION

IS_DATABASE_ROLE_IN_SESSION

IS_GRANTED_TO_INVOKER_ROLE

IS_INSTANCE_ROLE_IN_SESSION

IS_ROLE_IN_SESSION

POLICY_CONTEXT

アラート コンテキスト

GET_CONDITION_QUERY_UUID

使用上の注意

  • コンテキスト関数は通常、引数を必要としません。

  • 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();
Copy
+---------------------+--------------------+------------------+
| CURRENT_WAREHOUSE() | CURRENT_DATABASE() | CURRENT_SCHEMA() |
|---------------------+--------------------+------------------+
| MY_WAREHOUSE        | MY_DB              | PUBLIC           |
|---------------------+--------------------+------------------+

現在の日付、時刻、タイムスタンプを表示します(これらの関数を呼び出すために括弧は必要ありません)。

SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;
Copy
+--------------+--------------+-------------------------------+
| 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;
$$
;
Copy
+-----------------+
| anonymous block |
|-----------------|
| 2024-06-07      |
+-----------------+

Snowflake Scripting ブロックで、 CURRENT_DATE 関数を括弧なしで呼び出す式に変数を設定しようとすると、エラーになります:

EXECUTE IMMEDIATE
$$
DECLARE
  today DATE;
BEGIN
  today := CURRENT_DATE;
  RETURN today;
END;
$$
;
Copy
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;
$$
;
Copy
+-----------------+
| anonymous block |
|-----------------|
| 2024-06-07      |
+-----------------+