BEGIN … END (Exécution de scripts Snowflake)¶
BEGIN
et END
définissent un bloc Exécution de scripts Snowflake.
Pour plus d’informations sur les blocs, voir Comprendre les blocs dans Exécution de scripts Snowflake.
Syntaxe¶
BEGIN
<statement>;
[ <statement>; ... ]
[ EXCEPTION <exception_handler> ]
END;
Où :
statement
Une instruction peut être l’un des éléments suivants :
exception_handler
Spécifie comment les exceptions doivent être gérées. Reportez-vous à Traitement des exceptions et EXCEPTION (Exécution de scripts Snowflake).
Notes sur l’utilisation¶
Le mot-clé
END
doit être suivi immédiatement d’un point-virgule, ou suivi immédiatement d’une étiquette qui est immédiatement suivie d’un point-virgule.Le mot-clé
BEGIN
ne doit pas être suivi immédiatement d’un point-virgule.BEGIN
etEND
sont généralement utilisés à l’intérieur d’une autre construction de langage, telle qu’une construction looping ou branching, ou à l’intérieur d’une procédure stockée. Cependant, ce n’est pas requis. Un bloc BEGIN/END peut être la construction de premier niveau dans un bloc anonyme.Les blocs peuvent être imbriqués.
Exemples¶
Voici un exemple simple d’utilisation de BEGIN
et de END
dans des instructions liées au groupe. Cet exemple crée deux tables liées.
EXECUTE IMMEDIATE $$
BEGIN
CREATE TABLE parent (ID INTEGER);
CREATE TABLE child (ID INTEGER, parent_ID INTEGER);
RETURN 'Completed';
END;
$$
;
L’exemple suivant est similaire ; les instructions sont regroupées dans un bloc et se trouvent également à l’intérieur d’une transaction dans ce bloc :
EXECUTE IMMEDIATE $$
BEGIN
BEGIN TRANSACTION;
TRUNCATE TABLE child;
TRUNCATE TABLE parent;
COMMIT;
RETURN '';
END;
$$
;
Dans cet exemple, les instructions sont à l’intérieur d’une construction branching.
IF (both_rows_are_valid) THEN
BEGIN
BEGIN TRANSACTION;
INSERT INTO parent ...;
INSERT INTO child ...;
COMMIT;
END;
END IF;