CREATE APPLICATION

Erstellt eine neue Anwendung auf Grundlage eines Anwendungspakets oder eines Freigabeangebots unter Verwendung des Native Apps Framework.

Siehe auch:

ALTER APPLICATION, DESCRIBE APPLICATION, DROP APPLICATION, SHOW APPLICATIONS

Syntax

CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
   [ COMMENT = '<string_literal>' ]
   [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]

CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
  USING <path_to_version_directory>
  [ DEBUG_MODE = TRUE | FALSE ]
  [ COMMENT = '<string_literal>' ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [, ...] ) ]


CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
  USING VERSION  <version_identifier> [ PATCH <patch_num> ]
  [ DEBUG_MODE = TRUE | FALSE ]
  [ COMMENT = '<string_literal>' ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]

CREATE APPLICATION <name> FROM LISTING <listing_name>
   [ COMMENT = '<string_literal>' ]
   [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
Copy

Erforderliche Parameter

name

Gibt den Bezeichner der Anwendung an. Dieser muss für Ihr Konto eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.

FROM APPLICATION PACKAGE package_name

Gibt den Namen des Anwendungspakets an, das zum Erstellen der Anwendung verwendet wird. Wenn Sie diese Klausel verwenden möchten, um eine Anwendung aus einem Anwendungspaket ohne Angabe eines Stagingbereichs oder von Version/Patch zu erstellen, muss für das Anwendungspaket eine Standard-Freigaberichtlinie definiert werden.

Diese Klausel kann nur verwendet werden, um eine Anwendung in demselben Konto wie das Anwendungspaket zu erstellen. Diese Klausel kann nicht verwendet werden, um eine Anwendung im Entwicklungsmodus zu erstellen.

FROM LISTING listing_name

Gibt den Namen des Freigabeangebots an, das das Anwendungspaket enthält, das zum Erstellen der Anwendung verwendet wurde.

USING path_to_version_directory

Gibt den Pfad zu dem Stagingbereich an, der die Anwendungsdateien für die Anwendung enthält.

USING version [ PATCH patch_num ]

Gibt die Version und optional den Patch an, die in dem Anwendungspaket definiert sind, das zum Erstellen der Anwendung verwendet wurde.

Optionale Parameter

COMMENT = 'string_literal'

Gibt einen Kommentar für die Anwendung an.

Standard: Kein Wert

DEBUG_MODE = { TRUE | FALSE }

Aktiviert oder deaktiviert den Debug-Modus für die zu installierende Anwendung.

  • TRUE aktiviert den Debug-Modus für die installierte Anwendung.

  • FAlSE deaktiviert den Debug-Modus für die installierte Anwendung.

Bemerkung

Sie können DEBUG_MODE nur einstellen, wenn die Anwendung die folgenden Voraussetzungen erfüllt:

  • Die Anwendung befindet sich in demselben Konto wie das Anwendungspaket.

  • Die Anwendung wird aus einer bestimmten Version oder aus Dateien in einem benannten Stagingbereich erstellt.

TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )

Gibt den Namen des Tags und den Wert der Tag-Zeichenfolge an.

Der Tag-Wert ist immer eine Zeichenfolge, die maximale 256 Zeichen lang sein kann.

Weitere Informationen zur Angabe von Tags in einer Anweisung finden Sie unter Tag-Kontingente für Objekte und Spalten.

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

CREATE APPLICATION

Konto

DEVELOP

Anwendungspaket

INSTALL

Anwendungspaket

IMPORT SHARE

CREATE APPLICATION

Konto

Diese Berechtigungen sind erforderlich, um ein Anwendungsobjekt in einem anderen Konto als dem Konto zu erstellen, welches das Anwendungspaket enthält.

Nutzungshinweise

  • Um eine Anwendung direkt aus einem Anwendungspaket zu erstellen, müssen Sie eine Standard-Freigaberichtlinie in dem Anwendungspaket angeben.

  • Das Anwendungsobjekt unterscheidet sich in den folgenden Punkten von einer Datenbank:

    • Eine Anwendung darf nicht transient sein.

    • Für die Rolle mit OWNERSHIP-Berechtigung für die Anwendung gilt Folgendes:

      • Die Rolle kann die Datenbank löschen oder die Eigenschaft COMMENT sowie alle anwendungsspezifischen Eigenschaften ändern.

      • Die Rolle kann den Inhalt der Anwendung nur anzeigen oder ändern, wenn den Anwendungsrollen entsprechende Berechtigungen erteilt wurden. Außerdem kann diese Rolle kein Objekt auf Datenbankebene erstellen, wie ein Schema oder eine Datenbankrolle.

  • Regarding metadata:

    Achtung

    Customers should ensure that no personal data (other than for a User object), sensitive data, export-controlled data, or other regulated data is entered as metadata when using the Snowflake service. For more information, see Metadatenfelder in Snowflake.

  • CREATE OR REPLACE <object> statements are atomic. That is, when an object is replaced, the old object is deleted and the new object is created in a single transaction.

Beispiele

CREATE APPLICATION hello_snowflake_app
  FROM APPLICATION PACKAGE hello_snowflake_package
  USING VERSION v1;
Copy
+---------------------------------------------------------+
| status                                                  |
|---------------------------------------------------------|
| Application 'hello_snowflake_app' created successfully. |
+---------------------------------------------------------+
CREATE APPLICATION hello_snowflake_app
  FROM APPLICATION PACKAGE hello_snowflake_package
  USING '@hello_snowflake_code.core.hello_snowflake_stage';
Copy
+---------------------------------------------------------+
| status                                                  |
|---------------------------------------------------------|
| Application 'hello_snowflake_app' created successfully. |
+---------------------------------------------------------+