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.

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

SYS_CONTEXT

Sitzungskontext

ALL_USER_NAMES

CURRENT_ACCOUNT

Gibt den Konto-Locator zurück.

CURRENT_ACCOUNT_NAME

Gibt den Kontonamen zurück.

CURRENT_ORGANIZATION_NAME

CURRENT_ORGANIZATION_USER

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_ACTIVATED (SYS_CONTEXT-Funktion)

IS_APPLICATION_ROLE_IN_SESSION

IS_DATABASE_ROLE_IN_SESSION

IS_GRANTED_TO_INVOKER_ROLE

IS_INSTANCE_ROLE_IN_SESSION

IS_ROLE_ACTIVATED (SYS_CONTEXT-Funktion)

IS_ROLE_IN_SESSION

POLICY_CONTEXT

Alert-Kontext

GET_CONDITION_QUERY_UUID

Organisationskontext

IS_GROUP_ACTIVATED (SYS_CONTEXT-Funktion)

IS_GROUP_IMPORTED (SYS_CONTEXT-Funktion)

IS_USER_IMPORTED (SYS_CONTEXT-Funktion)

Nutzungshinweise

  • Kontextfunktionen benötigen im Allgemeinen keine Argumente (außer für SYS_CONTEXT).

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