Verwalten der Babelfish-Fehlerbehandlung mit Escape-Schraffuren - Amazon Aurora

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwalten der Babelfish-Fehlerbehandlung mit Escape-Schraffuren

Babelfish ahmt SQL das Verhalten für den Kontrollfluss und den Transaktionsstatus nach, wann immer dies möglich ist. Wenn Babelfish auf einen Fehler stößt, gibt es einen Fehlercode zurück, der dem Server-Fehlercode ähnelt. SQL Wenn Babelfish den Fehler nicht einem SQL Servercode zuordnen kann, gibt es einen festen Fehlercode (33557097) zurück und ergreift je nach Art des Fehlers spezifische Maßnahmen wie folgt:

  • Bei Kompilierzeitfehlern führt Babelfish ein Rollback für die Transaktion aus.

  • Wenn es sich um einen Laufzeitfehler handelt, beendet Babelfish den Stapel und führt ein Rollback für die Transaktion aus.

  • Bei einem Protokollfehler zwischen Client und Server wird kein Rollback der Transaktion ausgeführt.

Wenn ein Fehlercode nicht einem äquivalenten Code zugeordnet werden kann und der Code für einen ähnlichen Fehler verfügbar ist, wird der Fehlercode dem alternativen Code zugeordnet. Zum Beispiel die Verhaltensweisen, die SQL Servercodes verursachen 8143 und 8144 denen beide zugeordnet sind. 8143

Fehler, die nicht mappiert werden können, respektieren ein TRY... CATCH-Konstrukt nicht.

Sie können die Funktion verwenden@@ERROR, um einen SQL Server-Fehlercode zurückzugeben, oder die @@PGERROR Funktion, um einen SQL Postgre-Fehlercode zurückzugeben. Sie können auch die fn_mapped_system_error_list-Funktion nutzen, um eine Liste der zugeordneten Fehlercodes zurückzugeben. Informationen zu SQL Postgre-Fehlercodes finden Sie auf der SQL Postgre-Website.

Ändern der Escape-Schraffureinstellungen in Babelfish

Um besser mit Anweisungen umzugehen, die scheitern könnten, definiert Babelfish bestimmte Optionen, die als Escape-Schraffuren bezeichnet werden. Eine Escape-Luke ist eine Option, die das Verhalten von Babelfish angibt, wenn es auf eine nicht unterstütztes Funktion oder eine nicht unterstützte Syntax stößt.

Sie können die sp_babelfish_configure gespeicherte Prozedur zur Steuerung der Einstellungen einer Escape-Schraffur nutzen. Verwenden Sie das Skript, um die Escape-Schraffur auf ignore oder strict zu setzen. Wenn es auf strict eingestellt ist, gibt Babelfish einen Fehler zurück, den Sie korrigieren müssen, bevor Sie fortfahren.

Schließen Sie das server-Schlüsselwort ein, um die Änderungen auf die aktuelle Sitzung und auf Clusterebene anzuwenden.

Die Verwendung ist wie folgt:

  • Um alle Escape-Schraffuren und ihren Status sowie Nutzungsinformationen aufzulisten, führen Sie sp_babelfish_configure aus.

  • Um die benannten Escape-Hatches und ihre Werte für die aktuelle Sitzung oder den gesamten Cluster aufzulisten, führen Sie den Befehl aus, sp_babelfish_configure 'hatch_name' bei dem sich die Kennung einer oder mehrerer Escape-Luken hatch_name befindet. hatch_namekann SQL Platzhalter wie '%' verwenden.

  • Um eine oder mehrere Escape-Schraffuren auf den angegebenen Wert festzulegen, führen Sie sp_babelfish_configure ['hatch_name' [, 'strict'|'ignore' [, 'server']] aus. Um die Einstellungen auf einer clusterweiten Ebene dauerhaft zu machen, schließen Sie das server-Schlüsselwort ein, wie im Folgenden dargestellt:

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

    Um sie nur für die aktuelle Sitzung festzulegen, verwenden Sie server nicht.

  • Führen Sie sp_babelfish_configure 'default' (Babelfish 1.2.0 und höher) aus, um alle Escape-Schraffuren auf ihre Standardwerte zurückzusetzen.

Die Zeichenfolge, die die Schraffur (oder die Schraffuren) identifiziert, kann Platzhalter enthalten. SQL Im Folgenden werden beispielsweise alle Syntax-Escape-Schraffuren ignore für den Aurora Postgre-Cluster auf gesetzt. SQL

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

In der folgenden Tabelle finden Sie Beschreibungen und Standardwerte für die vordefinierten Escape-Schraffuren von Babelfish.

Escape-Luke Beschreibung Standard
escape_hatch_checkpoint

Erlaubt die Verwendung einer CHECKPOINT Anweisung im prozeduralen Code, die CHECKPOINT Anweisung ist jedoch derzeit nicht implementiert.

ignore

escape_hatch_constraint_name_for_default

Steuert das Verhalten von Babelfish im Zusammenhang mit Standardbeschränkungsnamen.

ignore

escape_hatch_database_misc_options

Steuert das Verhalten von Babelfish in Bezug auf die folgenden Optionen auf CREATEDATABASE:CONTAINMENT, DB_, CHAININGTRUSTWORTHY, PERSISTENT _ _. LOG BUFFER

ignore

escape_hatch_for_replication

Steuert das Verhalten von Babelfish im Zusammenhang mit der [NOT] FOR REPLICATION -Klausel beim Erstellen oder Ändern einer Tabelle.

strict

escape_hatch_fulltext

Steuert das Verhalten von Babelfish in Bezug auf FULLTEXT Funktionen wie DEFAULT _ FULLTEXT _ LANGUAGE inCREATE/ALTERDATABASE, oder sp_fulltext_database. CREATE FULLTEXT INDEX

ignore

escape_hatch_ignore_dup_key

Steuert das Verhalten von Babelfish in Bezug auf/und. CREATE ALTER TABLE CREATE INDEX Wenn IGNORE _ DUP _ KEY =ON ist, wird ein Fehler ausgelöst, wenn es auf strict (Standard) gesetzt ist, oder ignoriert den Fehler, wenn es auf gesetzt ist ignore (Babelfish-Version 1.2.0 und höher).

strict

escape_hatch_index_clustering

Steuert das Verhalten von Babelfish im Zusammenhang mit den Schlüsselwörtern CLUSTERED oder NONCLUSTERED für Indizes und/oder Einschränkungen. PRIMARY KEY UNIQUE Wenn ignoriert CLUSTERED wird, wird der Index oder die Einschränkung immer noch so erstellt, als ob sie NONCLUSTERED angegeben worden wäre.

ignore

escape_hatch_index_columnstore

Steuert das Verhalten von Babelfish in Bezug auf die COLUMNSTORE Klausel. Wenn Sie ignore angeben, erstellt Babelfish einen regulären B-Baum-Index.

strict

escape_hatch_join_hints

Steuert das Verhalten von Schlüsselwörtern in einem JOIN Operator:LOOP,,HASH,MERGE,REMOTE,REDUCE,REDISTRIBUTE. REPLICATE

ignore

escape_hatch_language_non_english

Steuert das Verhalten von Babelfish im Zusammenhang mit anderen Sprachen als Englisch für Nachrichten auf dem Bildschirm. Babelfish unterstützt derzeit nur Nachrichten auf dem us_english Bildschirm. SETLANGUAGEkönnte eine Variable verwenden, die den Sprachnamen enthält, sodass die tatsächlich eingestellte Sprache nur zur Laufzeit erkannt werden kann.

strict

escape_hatch_login_hashed_password

Wenn es ignoriert wird, unterdrückt der Fehler für das Schlüsselwort HASHED für CREATE LOGIN und ALTER LOGIN.

strict

escape_hatch_login_misc_options

Wenn es ignoriert wird, unterdrückt der Fehler bei anderen Schlüsselwörtern außer HASHEDMUST_CHANGE, OLD_PASSWORD und UNLOCK für CREATE LOGIN und ALTER LOGIN.

strict

escape_hatch_login_old_password

Wenn es ignoriert wird, unterdrückt der Fehler für das Schlüsselwort OLD_PASSWORD für CREATE LOGIN und ALTER LOGIN.

strict

escape_hatch_login_password_must_change

Wenn es ignoriert wird, unterdrückt der Fehler für das Schlüsselwort MUST_CHANGE für CREATE LOGIN und ALTER LOGIN.

strict

escape_hatch_login_password_unlock

Wenn es ignoriert wird, unterdrückt der Fehler für das Schlüsselwort UNLOCK für CREATE LOGIN und ALTER LOGIN.

strict

escape_hatch_nocheck_add_constraint

Steuert das Verhalten von Babelfish in Bezug auf die WITH CHECK NOCHECK OR-Klausel für Einschränkungen.

strict

escape_hatch_nocheck_existing_constraint

Steuert das Verhalten von Babelfish im Zusammenhang mit OR-Einschränkungen. FOREIGN KEY CHECK

strict

escape_hatch_query_hints

Steuert das Verhalten von Babelfish im Zusammenhang mit Abfragehinweisen. Wenn diese Option auf Ignorieren gesetzt ist, ignoriert der Server Hinweise, die die OPTION (...) -Klausel verwenden, um Aspekte der Abfrageverarbeitung zu spezifizieren. Zu den Beispielen gehören... SELECT FROM OPTION(MERGEJOINHASH, MAXRECURSION 10).

ignore

escape_hatch_rowversion

Steuert das Verhalten der ROWVERSION TIMESTAMP Datentypen und. Weitere Informationen zur Nutzung finden Sie unter Verwenden von Babelfish-Funktionen mit eingeschränkter Implementierung.

strict

escape_hatch_schemabinding_function

Steuert das Verhalten von Babelfish in Bezug auf die Klausel. WITH SCHEMABINDING Standardmäßig wird die WITH SCHEMABINDING Klausel ignoriert, wenn sie mit dem Befehl CREATE oder ALTER FUNCTION angegeben wird.

ignore

escape_hatch_schemabinding_procedure

Steuert das Verhalten von Babelfish in Bezug auf die WITH SCHEMABINDING Klausel. Standardmäßig wird die WITH SCHEMABINDING Klausel ignoriert, wenn sie mit dem Befehl CREATE oder ALTER PROCEDURE angegeben wird.

ignore

escape_hatch_rowguidcol_column

Steuert das Verhalten von Babelfish in Bezug auf die ROWGUIDCOL Klausel beim Erstellen oder Ändern einer Tabelle.

strict

escape_hatch_schemabinding_trigger

Steuert das Verhalten von Babelfish in Bezug auf die Klausel. WITH SCHEMABINDING Standardmäßig wird die WITH SCHEMABINDING Klausel ignoriert, wenn sie mit dem Befehl CREATE oder ALTER TRIGGER angegeben wird.

ignore

escape_hatch_schemabinding_view

Steuert das Verhalten von Babelfish in Bezug auf die WITH SCHEMABINDING Klausel. Standardmäßig wird die WITH SCHEMABINDING Klausel ignoriert, wenn sie mit dem Befehl CREATE oder ALTER VIEW angegeben wird.

ignore

escape_hatch_session_settings

Steuert das Verhalten von Babelfish gegenüber nicht unterstützten Anweisungen auf Sitzungsebene. SET

ignore

escape_hatch_showplan_all

Steuert das Verhalten von Babelfish in Bezug auf _ und. SET SHOWPLAN ALL SET STATISTICS PROFILE Wenn sie auf Ignorieren gesetzt sind, verhalten sie sich wie SET BABELFISH _ SHOWPLAN _ ALL und SET BABELFISH _ STATISTICSPROFILE; wenn sie auf Strict gesetzt sind, werden sie stillschweigend ignoriert.

strict

escape_hatch_storage_on_partition

Steuert das Verhalten von Babelfish im Zusammenhang mit der ON partition_scheme column -Klausel beim Definieren der Partitionierung. Babelfish implementiert derzeit keine Partitionierung.

strict

escape_hatch_storage_options

Notluke bei jeder Speicheroption, die inCREATE,, ALTERDATABASE, TABLE verwendet wird. INDEX Dazu gehören die Klauseln (LOG) ON, TEXTIMAGE _ON, FILESTREAM _ON, die Speicherorte (Partitionen, Dateigruppen) für Tabellen, Indizes und Einschränkungen sowie für eine Datenbank definieren. Diese Escape-Hatch-Einstellung gilt für all diese Klauseln (einschließlich ON [PRIMARY] und ON "„). DEFAULT Die Ausnahme ist, wenn eine Partition für eine Tabelle oder einen Index mit ON partition_scheme (Spalte) angegeben wird.

ignore

escape_hatch_table_hints

Steuert das Verhalten von Tabellenhinweisen, die mit der WITH (...) -Klausel angegeben wurden.

ignore

escape_hatch_unique_constraint

Wenn dieser Wert auf strict gesetzt ist, kann ein undurchsichtiger semantischer Unterschied zwischen SQL Server und Postgre SQL bei der Behandlung von NULL Werten in indizierten Spalten zu Fehlern führen. Der semantische Unterschied tritt nur in unrealistischen Anwendungsfällen auf, sodass Sie diese Escape-Schraffur auf „ignore“ (Ignorieren) festlegen können, um den Fehler nicht anzuzeigen.

Aus den folgenden Versionen veraltet: 3.6.0 und höhere Versionen, 4.2.0 und höhere Versionen

strict