Gestion du traitement des erreurs Babelfish avec des trappes de secours - Amazon Aurora

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion du traitement des erreurs Babelfish avec des trappes de secours

Babelfish imite le SQL comportement du flux de contrôle et de l'état des transactions dans la mesure du possible. Lorsque Babelfish rencontre une erreur, il renvoie un code d'erreur similaire au code d'erreur du SQL serveur. Si Babelfish ne parvient pas à associer l'erreur à un code SQL serveur, il renvoie un code d'erreur fixe (33557097) et prend des mesures spécifiques en fonction du type d'erreur, comme suit :

  • Pour les erreurs de compilation, Babelfish annule la transaction.

  • Pour les erreurs d'exécution, Babelfish termine le lot et annule la transaction.

  • Pour une erreur de protocole entre le client et le serveur, la transaction n'est pas annulée.

Si un code d'erreur ne peut pas être mappé à un code équivalent et que le code d'une erreur similaire est disponible, il est mappé au code alternatif. Par exemple, les comportements qui sont à l'origine des codes de SQL serveur 8143 et auxquels 8144 ils sont tous deux mappés8143.

Les erreurs qui ne peuvent pas être mappées ne respectent pas une construction TRY... CATCH.

Vous pouvez utiliser @@ERROR pour renvoyer un code d'erreur SQL du serveur ou la @@PGERROR fonction pour renvoyer un code d'SQLerreur Postgre. Vous pouvez également utiliser la fonction fn_mapped_system_error_list pour renvoyer une liste de codes d'erreur mappés. Pour plus d'informations sur les codes SQL d'erreur Postgre, consultez le site Web de Postgre SQL.

Modification des paramètres de la trappe de secours de Babelfish

Pour gérer les déclarations susceptibles d'échouer, Babelfish définit certaines options appelées trappes de secours. Une trappe de secours est une option qui spécifie le comportement de Babelfish lorsqu'il rencontre une fonction ou une syntaxe non prise en charge.

Vous pouvez utiliser la procédure stockée sp_babelfish_configure pour contrôler les paramètres d'une trappe de secours. Utilisez le script pour définir la trappe de secours sur ignore ou strict. Si elle est définie sur strict, Babelfish renvoie une erreur que vous devez corriger avant de continuer.

Pour appliquer les changements à la session en cours et au niveau du cluster, incluez le mot-clé server.

Procédez comme suit :

  • Pour répertorier toutes les trappes de secours et leur statut, ainsi que des informations relatives à leur utilisation, exécutez sp_babelfish_configure.

  • Pour répertorier les trappes d'échappement nommées et leurs valeurs, pour la session en cours ou à l'échelle du cluster, exécutez la commande sp_babelfish_configure 'hatch_name'hatch_name est l'identifiant d'une ou de plusieurs trappes d'échappement. hatch_namepeut utiliser des SQL caractères génériques, tels que « % ».

  • Pour définir une ou plusieurs trappes de secours sur la valeur spécifiée, exécutez sp_babelfish_configure ['hatch_name' [, 'strict'|'ignore' [, 'server']]. Pour rendre les paramètres permanents à l'échelle d'un cluster, ajoutez le mot-clé server, comme indiqué ci-après :

    EXECUTE sp_babelfish_configure 'escape_hatch_unique_constraint', 'ignore', 'server'

    Pour les appliquer à la session en cours uniquement, n'utilisez pas server.

  • Pour remettre toutes les trappes de secours à leur valeur par défaut, lancez sp_babelfish_configure 'default' (Babelfish 1.2.0 et versions ultérieures).

La chaîne identifiant la ou les hachures peut inclure SQL des caractères génériques. Par exemple, ce qui suit définit toutes les trappes d'échappement syntaxiques sur ignore pour le cluster Aurora PostgreSQL.

EXECUTE sp_babelfish_configure '%', 'ignore', 'server'

Dans le tableau suivant, vous trouverez les descriptions et les valeurs par défaut des trappes de secours prédéfinies par Babelfish.

Trappe de secours Description Par défaut
escape_hatch_checkpoint

Autorise l'utilisation d'CHECKPOINTune instruction dans le code procédural, mais l'CHECKPOINTinstruction n'est actuellement pas implémentée.

ignore

escape_hatch_constraint_name_for_default

Détermine le comportement de Babelfish pour les noms de contraintes par défaut.

ignore

escape_hatch_database_misc_options

Contrôle le comportement de Babelfish lié aux options suivantes sur CREATE DATABASE :CONTAINMENT, DB_ CHAININGTRUSTWORTHY, PERSISTENT _ _. LOG BUFFER

ignore

escape_hatch_for_replication

Contrôle le comportement de Babelfish lié à la FOR REPLICATION clause [NOT] lors de la création ou de la modification d'une table.

strict

escape_hatch_fulltext

Contrôle le comportement de Babelfish lié aux FULLTEXT fonctionnalités, telles que DEFAULT _ FULLTEXT _ LANGUAGE dansCREATE/ALTERDATABASECREATEFULLTEXTINDEX, ou sp_fulltext_database.

ignore

escape_hatch_ignore_dup_key

Contrôle le comportement de Babelfish lié àCREATE/ALTERTABLEet. CREATE INDEX Lorsque IGNORE _ DUP _ KEY =ON, génère une erreur lorsqu'il est défini sur strict (valeur par défaut) ou ignore l'erreur lorsqu'il est défini sur ignore (Babelfish version 1.2.0 et supérieure).

strict

escape_hatch_index_clustering

Contrôle le comportement de Babelfish en ce qui concerne les NONCLUSTERED mots clés CLUSTERED ou pour les index et/ou les PRIMARY KEY contraintes. UNIQUE Lorsqu'il CLUSTERED est ignoré, l'index ou la contrainte est toujours créé comme s'il NONCLUSTERED avait été spécifié.

ignore

escape_hatch_index_columnstore

Contrôle le comportement de Babelfish lié à la COLUMNSTORE clause. Si vous spécifiez ignore, Babelfish crée un index B-Tree classique.

strict

escape_hatch_join_hints

Contrôle le comportement des mots clés dans un JOIN opérateur : LOOPHASH,MERGE,REMOTE,REDUCE,REDISTRIBUTE,REPLICATE.

ignore

escape_hatch_language_non_english

Détermine le comportement de Babelfish pour les langues autres que l'anglais dans les messages affichés à l'écran. Babelfish ne prend actuellement en charge que les messages us_english à l'écran. SETLANGUAGEpeut utiliser une variable contenant le nom de la langue, de sorte que la langue définie ne peut être détectée qu'au moment de l'exécution.

strict

escape_hatch_login_hashed_password

En cas de définition sur ignore, l'erreur liée au mot-clé HASHED est supprimée pour CREATE LOGIN et ALTER LOGIN.

strict

escape_hatch_login_misc_options

En cas de définition sur ignore, l'erreur liée à des mots-clés autres que HASHED, MUST_CHANGE, OLD_PASSWORD et UNLOCK est supprimée pour CREATE LOGIN et ALTER LOGIN.

strict

escape_hatch_login_old_password

En cas de définition sur ignore, l'erreur liée au mot-clé OLD_PASSWORD est supprimée pour CREATE LOGIN et ALTER LOGIN.

strict

escape_hatch_login_password_must_change

En cas de définition sur ignore, l'erreur liée au mot-clé MUST_CHANGE est supprimée pour CREATE LOGIN et ALTER LOGIN.

strict

escape_hatch_login_password_unlock

En cas de définition sur ignore, l'erreur liée au mot-clé UNLOCK est supprimée pour CREATE LOGIN et ALTER LOGIN.

strict

escape_hatch_nocheck_add_constraint

Contrôle le comportement de Babelfish lié à la NOCHECK clause WITH CHECK or pour les contraintes.

strict

escape_hatch_nocheck_existing_constraint

Contrôle le comportement de Babelfish lié à FOREIGN KEY ou CHECK aux contraintes.

strict

escape_hatch_query_hints

Détermine le comportement de Babelfish pour les indicateurs de requête. Lorsque cette option est définie sur ignorer, le serveur ignore les indications qui utilisent la clause OPTION (...) pour spécifier les aspects du traitement des requêtes. Les exemples incluent SELECTFROM... OPTION(MERGEJOINHASH, MAXRECURSION 10).

ignore

escape_hatch_rowversion

Contrôle le comportement des TIMESTAMP types de données ROWVERSION et. Pour plus d'informations, consultez Utilisation des fonctionnalités Babelfish dont la mise en œuvre est limitée.

strict

escape_hatch_schemabinding_function

Contrôle le comportement de Babelfish lié à la WITH SCHEMABINDING clause. Par défaut, la WITH SCHEMABINDING clause est ignorée lorsqu'elle est spécifiée à l'aide de la ALTER FUNCTION commande CREATE or.

ignore

escape_hatch_schemabinding_procedure

Contrôle le comportement de Babelfish lié à la WITH SCHEMABINDING clause. Par défaut, la WITH SCHEMABINDING clause est ignorée lorsqu'elle est spécifiée à l'aide de la ALTER PROCEDURE commande CREATE or.

ignore

escape_hatch_rowguidcol_column

Contrôle le comportement de Babelfish lié à la ROWGUIDCOL clause lors de la création ou de la modification d'une table.

strict

escape_hatch_schemabinding_trigger

Contrôle le comportement de Babelfish lié à la WITH SCHEMABINDING clause. Par défaut, la WITH SCHEMABINDING clause est ignorée lorsqu'elle est spécifiée à l'aide de la ALTER TRIGGER commande CREATE or.

ignore

escape_hatch_schemabinding_view

Contrôle le comportement de Babelfish lié à la WITH SCHEMABINDING clause. Par défaut, la WITH SCHEMABINDING clause est ignorée lorsqu'elle est spécifiée à l'aide de la ALTER VIEW commande CREATE or.

ignore

escape_hatch_session_settings

Contrôle le comportement de Babelfish vis-à-vis des instructions non prises en charge au niveau de la session. SET

ignore

escape_hatch_showplan_all

Contrôle le comportement de Babelfish lié à SET SHOWPLAN _ ALL et. SET STATISTICS PROFILE Lorsqu'ils sont définis sur ignorer, ils se comportent comme SET BABELFISH _ SHOWPLAN _ ALL et SET BABELFISH _ STATISTICS PROFILE ; lorsqu'ils sont définis sur strict, ils sont ignorés en silence.

strict

escape_hatch_storage_on_partition

Détermine le comportement de Babelfish pour la clause ON partition_scheme column lors de la définition du partitionnement. Babelfish n'implémente actuellement pas le partitionnement.

strict

escape_hatch_storage_options

Trappe d'évacuation sur toute option de stockage utilisée dansCREATE,, ALTER DATABASETABLE,INDEX. Cela inclut les clauses (LOG) ON, TEXTIMAGE _ON, FILESTREAM _ON qui définissent les emplacements de stockage (partitions, groupes de fichiers) pour les tables, les index et les contraintes, ainsi que pour une base de données. Ce paramètre de trappe d'évacuation s'applique à toutes ces clauses (y compris ON [PRIMARY] et ON "DEFAULT«). Une exception s'applique lorsqu'une partition est spécifiée pour une table ou un index accompagné de ON partition_scheme (column).

ignore

escape_hatch_table_hints

Contrôle le comportement des indications de table spécifiées à l'aide de la clause WITH (...).

ignore

escape_hatch_unique_constraint

Lorsqu'il est défini sur strict, une différence sémantique obscure entre SQL Server et Postgre SQL dans le traitement des NULL valeurs sur les colonnes indexées peut générer des erreurs. La différence sémantique n'apparaît que dans des cas d'utilisation irréalistes. Vous pouvez donc définir cette trappe de secours sur « ignorer » pour ne pas afficher l'erreur.

Obsolète à partir des versions suivantes : 3.6.0 et versions supérieures, 4.2.0 et versions supérieures

strict