Aufrufen einer externen Funktion für Azure

Unter diesem Thema wird beschrieben, wie externe Funktionen aufgerufen werden:

Eine externe Funktion wird wie jede andere UDF (benutzerdefinierte Funktion) aufgerufen. (Und wie jede andere UDF wird eine externe Funktion unabhängig von der Plattform auf die gleiche Weise aufgerufen.)

  1. Stellen Sie zuerst sicher, dass Ihre Sitzung die Datenbank und das Schema verwendet, die die Funktion enthalten.

    (Externe Funktionen sind Schemaobjekte, daher muss das Schema, das die Funktion enthält, in Ihrer Sitzung verwendet werden. Andernfalls müssen Sie beim Aufruf der Funktion den vollqualifizierten Namen der Funktion angeben.)

    USE DATABASE <database_name>;
    USE SCHEMA <schema_name>;
    
  2. Erteilen Sie gegebenenfalls den Snowflake-Rollen, die die externe Funktion aufrufen müssen, die Berechtigung USAGE für diese externe Funktion.

    (Eine Rolle muss die USAGE- oder OWNERSHIP-Berechtigung für eine externe Funktion haben, um diese aufrufen zu können.)

    GRANT USAGE ON FUNCTION <external_function_name>(<parameter_data_type>) TO <role_name>;
    

    Beispiel:

    GRANT USAGE ON FUNCTION echo(INTEGER, VARCHAR) TO analyst_role;
    
  3. Rufen Sie mit einer geeigneten Rolle die externe Funktion als Teil einer SQL-Anweisung auf. Wenn Sie eine der von Snowflake bereitgestellten Beispielfunktionen erstellt haben, können Sie diese externe Funktion wie unten gezeigt aufrufen:

    SELECT echo(42, 'Adams');
    

    Wenn Sie einen anderen Funktionsnamen als echo verwendet haben, dann ersetzen Sie echo durch den tatsächlichen Funktionsnamen.

    Der zurückgegebene Wert sollte ungefähr wie folgt aussehen:

    [0, 42, "Adams"]
    

    Wobei:

    • 0 ist die Zeilennummer des zurückgegebenen Wertes.

    • 42, "Adams" ist der zurückgegebene Wert.

Bemerkung

Obwohl eine externe Funktion normalerweise wie andere UDFs aufgerufen werden kann, gibt es einige Ausnahmen. Weitere Details dazu finden Sie unter Ausführungszeiteinschränkungen und Probleme.

Zurück zum Anfang