CREATE TYPE

Crée un type défini par l’utilisateur.

Voir aussi :

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

Syntaxe

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

Paramètres requis

name

Indique l’identificateur du type défini par l’utilisateur ; doit être unique pour le schéma dans lequel le type défini par l’utilisateur est créé.

Le nom ne peut pas être le même que le nom d’un type Snowflake. Par exemple, le nom du type ne peut pas être array ou geometry.

Si le nom est le même qu’un mot clé Snowflake, il doit être spécifié entre guillemets doubles.

De plus, l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (par exemple, "My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Pour plus d’informations, voir Exigences relatives à l’identificateur.

AS type

Une définition de type de données Snowflake existante.

La définition de type spécifiée est le type de base pour le type défini par l’utilisateur en cours de création.

type ne peut pas être un autre type défini par l’utilisateur.

Paramètres facultatifs

COMMENT = 'string_literal'

Spécifie un commentaire pour le type défini par l’utilisateur.

Par défaut : aucune valeur

Exigences en matière de contrôle d’accès

Un rôle utilisé pour exécuter cette opération doit au minimum disposer des privilèges suivants :

Privilège

Objet

Remarques

CREATE TYPE

Schéma

Pour effectuer une opération sur un objet dans un schéma, il est nécessaire de disposer d’au moins un privilège sur la base de données parente et d’au moins un privilège sur le schéma parent.

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.

Notes sur l’utilisation

  • Les clauses OR REPLACE et IF NOT EXISTS s’excluent mutuellement. Elles ne peuvent pas être utilisées dans la même instruction.

  • Les instructions CREATE OR REPLACE <objet> sont atomiques. En d’autres termes, lorsqu’un objet est remplacé, l’ancien objet est supprimé et le nouvel objet est créé dans une seule transaction.

  • Concernant les métadonnées :

    Attention

    Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.

Exemples

Utiliser la commande CREATE TYPE pour créer un type défini par l’utilisateur basé sur le type de données NUMBER :

CREATE TYPE age AS NUMBER(3,0);

Créer un type défini par l’utilisateur basé sur le type de données OBJECT :

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

Pour plus d’exemples, voir Exemples de types de données définis par l’utilisateur.