CREATE APPLICATION

Cria um novo aplicativo com base em um pacote ou listagem de aplicativos usando o Native Apps Framework.

Consulte também:

ALTER APPLICATION, DESCRIBE APPLICATION, DROP APPLICATION, SHOW APPLICATIONS

Sintaxe

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

Parâmetros obrigatórios

name

Especifica o identificador do aplicativo. Deve ser único para sua conta.

Além disso, o identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo, "My object"). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Para obter mais detalhes, consulte Requisitos para identificadores.

FROM APPLICATION PACKAGE package_name

Especifica o nome do pacote de aplicativo usado para criar o aplicativo. Para usar esta cláusula para criar um aplicativo a partir de um pacote de aplicativo sem especificar um estágio ou uma versão/patch, o pacote de aplicativo deve ter uma diretriz de versão padrão definida.

Esta cláusula só pode ser usada para criar um aplicativo na mesma conta que o pacote do aplicativo. Esta cláusula não pode ser usada para criar um aplicativo no modo de desenvolvimento.

FROM LISTING listing_name

Especifica o nome da listagem que contém o pacote de aplicativo usado para criar o aplicativo.

USING path_to_version_directory

Especifica o caminho para o estágio que contém os arquivos do aplicativo para o aplicativo.

USING version [ PATCH patch_num ]

Especifica a versão e, opcionalmente, o patch, definido no pacote do aplicativo usado para criar o aplicativo.

Parâmetros opcionais

COMMENT = 'string_literal'

Especifica um comentário para o aplicativo.

Padrão: sem valor

DEBUG_MODE = { TRUE | FALSE }

Ativa ou desativa o modo de depuração do aplicativo a ser instalado.

  • TRUE ativa o modo de depuração para o aplicativo instalado.

  • FAlSE desativa o modo de depuração para o aplicativo instalado.

Nota

Você só pode definir DEBUG_MODE se o aplicativo cumprir os seguintes requisitos:

  • O aplicativo está na mesma conta que o pacote do aplicativo.

  • O aplicativo está sendo criado a partir de uma versão específica ou de arquivos em um estágio nomeado.

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

Especifica o nome da tag e o valor da cadeia de caracteres dela.

O valor de tag é sempre uma cadeia de caracteres, e o número máximo de caracteres do valor da tag é 256.

Para obter mais detalhes sobre como especificar tags em uma instrução, consulte Cotas de tags para objetos e colunas.

Requisitos de controle de acesso

Uma função usada para executar este comando SQL deve ter os seguintes privilégios no mínimo:

Privilégio

Objeto

Notas

CREATE APPLICATION

Conta

DEVELOP

Pacote de aplicativo

INSTALL

Pacote de aplicativo

IMPORT SHARE

CREATE APPLICATION

Conta

Esses privilégios são necessários para criar um objeto de aplicativo em uma conta diferente da conta que contém o pacote do aplicativo.

Notas de uso

  • Para criar um aplicativo diretamente de um pacote de aplicativo, você deve especificar uma diretriz de versão padrão no pacote de aplicativo.

  • O objeto de aplicativo difere de um banco de dados das seguintes maneiras:

    • Um aplicativo não pode ser transitório.

    • A função com o privilégio OWNERSHIP no aplicativo:

      • Pode descartar o banco de dados ou modificar o COMMENT bem como quaisquer propriedades específicas do aplicativo.

      • Não é possível ver ou modificar o conteúdo do aplicativo, exceto por meio dos privilégios concedidos às funções do aplicativo. Além disso, essa função não pode criar um objeto em nível de banco de dados, como um esquema ou uma função de banco de dados.

  • Regarding metadata:

    Atenção

    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 Campos de metadados no 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.

Exemplos

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