Kontextfunktionen

Diese Funktionsfamilie ermöglicht es, Informationen über den Kontext zu sammeln, in dem die Anweisung ausgeführt wird. Diese Funktionen werden maximal einmal pro Anweisung ausgewertet.

Unter diesem Thema:

Liste der Funktionen

Unterkategorie

Funktion

Anmerkungen

Allgemeiner Kontext

CURRENT_CLIENT

CURRENT_DATE

CURRENT_IP_ADDRESS

CURRENT_REGION

CURRENT_TIME

CURRENT_TIMESTAMP

CURRENT_VERSION

GETDATE

Alias für CURRENT_TIMESTAMP.

LOCALTIME

Alias für CURRENT_TIME.

LOCALTIMESTAMP

Alias für CURRENT_TIMESTAMP.

SYSDATE

SYSTIMESTAMP

Sitzungskontext

ALL_USER_NAMES

CURRENT_ACCOUNT

Gibt den Konto-Locator zurück.

CURRENT_ACCOUNT_NAME

Gibt den Kontonamen zurück.

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

Sitzungsobjektkontext

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

Alert-Kontext

GET_CONDITION_QUERY_UUID

Nutzungshinweise

  • Kontextfunktionen benötigen im Allgemeinen keine Argumente.

  • Zur Erfüllung des ANSI-Standards können die folgenden Kontextfunktionen ohne Klammern in SQL-Anweisungen aufgerufen werden:

    • CURRENT_DATE

    • CURRENT_TIME

    • CURRENT_TIMESTAMP

    • CURRENT_USER

    • LOCALTIME

    • LOCALTIMESTAMP

    Bemerkung

    Wenn Sie eine Snowflake Scripting Variable für einen Ausdruck festlegen, der eine dieser Funktionen aufruft (z. B. my_var := <function_name>();), müssen Sie die Klammern einschließen.

Beispiele

Zeigt das aktuelle Warehouse, die Datenbank und das Schema für die Sitzung an:

SELECT CURRENT_WAREHOUSE(), CURRENT_DATABASE(), CURRENT_SCHEMA();
Copy
+---------------------+--------------------+------------------+
| CURRENT_WAREHOUSE() | CURRENT_DATABASE() | CURRENT_SCHEMA() |
|---------------------+--------------------+------------------+
| MY_WAREHOUSE        | MY_DB              | PUBLIC           |
|---------------------+--------------------+------------------+

Zeigen Sie das aktuelle Datum, die aktuelle Uhrzeit und den aktuellen Zeitstempel an (beachten Sie, dass für den Aufruf dieser Funktionen keine Klammern erforderlich sind):

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 |
+--------------+--------------+-------------------------------+

Rufen Sie in einem Snowflake Scripting-Block die Funktion CURRENT_DATE ohne Klammern auf, um eine Variable in einer SQL-Anweisung einzustellen:

EXECUTE IMMEDIATE
$$
DECLARE
  currdate DATE;
BEGIN
  SELECT CURRENT_DATE INTO currdate;
  RETURN currdate;
END;
$$
;
Copy
+-----------------+
| anonymous block |
|-----------------|
| 2024-06-07      |
+-----------------+

In einem Snowflake Scripting-Block führt der Versuch, eine Variable auf einen Ausdruck zu setzen, der die Funktion CURRENT_DATE ohne Klammern aufruft, zu einem Fehler:

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'

Der gleiche Block gibt das aktuelle Datum zurück, wenn die Funktion mit den Klammern aufgerufen wird:

EXECUTE IMMEDIATE
$$
DECLARE
  today DATE;
BEGIN
  today := CURRENT_DATE();
  RETURN today;
END;
$$
;
Copy
+-----------------+
| anonymous block |
|-----------------|
| 2024-06-07      |
+-----------------+