CREATE TYPE

Cria um tipo definido pelo usuário.

Consulte também:

ALTER TYPE , DESCRIBE TYPE , SHOW TYPES , DROP TYPE , UNDROP TYPE

Sintaxe

CREATE [ OR REPLACE ] TYPE [ IF NOT EXISTS ] <name> AS <type>
  [ COMMENT = '<string_literal>' ]

Parâmetros obrigatórios

name

Especifica o identificador do tipo definido pelo usuário; deve ser exclusivo para o esquema no qual o tipo definido pelo usuário é criado.

O nome não pode ser o mesmo que um nome de tipo do Snowflake. Por exemplo, o nome de tipo não pode ser array ou geometry.

Se o nome for o mesmo que uma palavra-chave do Snowflake, ele deve ser especificado entre aspas duplas.

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 informações, consulte Requisitos para identificadores.

AS type

Uma definição de tipo de dados Snowflake existente.

A definição de tipo especificada é o tipo base para o tipo definido pelo usuário que está sendo criado.

type não pode ser outro tipo definido pelo usuário.

Parâmetros opcionais

COMMENT = 'string_literal'

Especifica um comentário para o tipo definido pelo usuário.

Padrão: sem valor

Requisitos de controle de acesso

A função usada para executar essa operação deve ter, no mínimo, os seguintes privilégios:

Privilégio

Objeto

Notas

CREATE TYPE

Esquema

Operar em um objeto em um esquema requer pelo menos um privilégio no banco de dados pai e pelo menos um privilégio no esquema pai.

Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.

Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.

Notas de uso

  • As cláusulas OR REPLACE e IF NOT EXISTS são mutuamente exclusivas. Os dois não podem ser usados na mesma instrução.

  • Instruções CREATE OR REPLACE <object> são atômicas. Ou seja, quando um objeto é substituído, o objeto antigo é excluído e o novo objeto é criado em uma única transação.

  • Em relação aos metadados:

    Atenção

    Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.

Exemplos

Use o comando CREATE TYPE para criar um tipo definido pelo usuário com base no tipo de dados NUMBER:

CREATE TYPE age AS NUMBER(3,0);

Crie um tipo definido pelo usuário com base no tipo de dados OBJECT:

CREATE TYPE path AS OBJECT(
  relative BOOLEAN,
  segments ARRAY(STRING)
);

Para obter mais exemplos, consulte Exemplos de tipos de dados definidos pelo usuário.