Partager via


Création de scripts SQL

S’applique à :coché oui Databricks SQL coché oui Databricks Runtime 16.3 et versions ultérieures

Important

Cette fonctionnalité est disponible en préversion publique.

Vous pouvez utiliser une logique procédurale puissante à l’aide de la syntaxe de script sql/PSM standard. Tout script SQL se compose et commence par un bloc d’instructions composé (BEGIN ... END). Une instruction composée commence par une section pour déclarer des variables locales, des conditions définies par l’utilisateur et des gestionnaires de conditions, qui sont utilisés pour intercepter les exceptions. Ceci est suivi par le corps de l'instruction composée, qui se compose de :

  • Les instructions de contrôle de flux incluent des boucles sur des expressions de prédicat, des boucles FOR sur les résultats de requête, une logique conditionnelle telle que IF et CASE, et des moyens pour décomposer des boucles telles que LEAVE et ITERATE.
  • Instructions DDL telles que ALTER, CREATE, DROP.
  • Instructions DCL (Data Control) telles que GRANT et REVOKE.
  • Instructions DML INSERT, UPDATE, DELETE et MERGE.
  • Requêtes qui retournent des ensembles de résultats à l’appelant du script.
  • SET instructions pour définir des variables locales ainsi que des variables de session.
  • L’instruction EXECUTE IMMEDIATE.
  • Instructions composées imbriquées, qui fournissent des étendues imbriquées pour les variables, les conditions et les gestionnaires de conditions.

Passage de données entre l’appelant et l’instruction composée

Il existe deux façons de transmettre des données à et à partir d’un script SQL :

  • Utilisez des variables de session pour passer des valeurs scalaires ou de petits ensembles de tableaux ou de mappages d’un script SQL à un autre.
  • Utilisez des marqueurs de paramètres pour transmettre des valeurs scalaires ou de petits ensembles de tableaux ou de données cartographiques à partir d’un widget de notebook, Python ou d’un autre langage au script SQL.

Étendue des variables

Les variables déclarées dans une instruction composée peuvent être référencées dans n’importe quelle expression d’une instruction composée. Databricks résout les identificateurs depuis l’étendue la plus interne vers l’extérieur, en suivant les règles décrites dans Résolution de noms. Vous pouvez utiliser le bloc d’instructions facultatif étiquettes pour résoudre les ambiguïtés des noms de variables.

Gestion des conditions

SQL Scripting prend en charge les gestionnaires de conditions, qui sont utilisés pour intercepter et traiter des exceptions lors du EXIT traitement du script SQL. Dans le gestionnaire de conditions, vous pouvez RÉSIGNAL l’exception d’origine, SIGNALER une nouvelle exception ou quitter l’instruction composée sans exception.

Les gestionnaires de conditions peuvent être définis pour gérer trois classes distinctes de conditions :

  • Une ou plusieurs conditions nommées qui peuvent être une classe d’erreur définie par Databricks spécifique, telle qu’une DIVIDE_BY_ZERO condition déclarée par l’utilisateur. Ces gestionnaires gèrent ces conditions spécifiques.

  • Une ou plusieurs SQLSTATEs, pouvant être générées par Databricks ou par une instruction SIGNAL utilisateur. Ces gestionnaires peuvent gérer n’importe quelle condition associée à ce SQLSTATE.

  • Un gestionnaire générique SQLEXCEPTION peut intercepter toutes les conditions qui tombent dans le SQLEXCEPTION (n'importe quel SQLSTATE qui n'est ni XX*** ni 02***).

Les éléments suivants sont utilisés pour déterminer le gestionnaire de conditions qui s’applique à une exception. Ce gestionnaire de conditions est appelé gestionnaire le plus approprié :

  • Un gestionnaire de conditions ne peut pas s'appliquer à une instruction définie dans son propre corps ou au corps d'un gestionnaire de conditions déclaré dans la même instruction composée.

  • Les gestionnaires de conditions applicables définis dans l'instruction composée la plus interne dans laquelle l'exception a été déclenchée sont appropriés.

  • Si plusieurs gestionnaires appropriés sont disponibles, le gestionnaire le plus spécifique est le plus approprié. Par exemple, un gestionnaire pour une condition nommée est plus spécifique qu’un gestionnaire pour une condition nommée SQLSTATE. Un gestionnaire générique EXCEPTION est le moins spécifique.

À moins qu'un gestionnaire ne soit SIGNAL ou RESIGNAL une condition qui lui est propre, le résultat d'un gestionnaire de condition est d'exécuter l'instruction suivant l'instruction composée qui a déclaré le gestionnaire à exécuter ensuite.

Procédures stockées SQL

Important

Cette fonctionnalité est disponible en préversion publique.

S’applique à : coché oui Databricks SQL coché oui Databricks Runtime 17.0 et versions ultérieures

À l’aide de l’instruction CREATE PROCEDURE , vous pouvez conserver un script SQL dans le catalogue Unity. Vous pouvez ensuite modifier l'accès à la procédure pour d'autres utilisateurs. Ces principals peuvent ensuite utiliser l’instruction CALL pour appeler la procédure.

Liste des instructions de flux de contrôle

Voici une liste des instructions de contrôle de flux prises en charge :