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 '
bei dem sich die Kennung einer oder mehrerer Escape-Lukenhatch_name
'
befindet.hatch_name
hatch_name
kann SQL Platzhalter wie '%' verwenden.Um eine oder mehrere Escape-Schraffuren auf den angegebenen Wert festzulegen, führen Sie
sp_babelfish_configure ['
aus. Um die Einstellungen auf einer clusterweiten Ebene dauerhaft zu machen, schließen Sie dashatch_name
' [, 'strict'|'ignore' [, 'server']]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 |
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 |
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 |
strict |
escape_hatch_login_hashed_password |
Wenn es ignoriert wird, unterdrückt der Fehler für das Schlüsselwort |
strict |
escape_hatch_login_misc_options |
Wenn es ignoriert wird, unterdrückt der Fehler bei anderen Schlüsselwörtern außer |
strict |
escape_hatch_login_old_password |
Wenn es ignoriert wird, unterdrückt der Fehler für das Schlüsselwort |
strict |
escape_hatch_login_password_must_change |
Wenn es ignoriert wird, unterdrückt der Fehler für das Schlüsselwort |
strict |
escape_hatch_login_password_unlock |
Wenn es ignoriert wird, unterdrückt der Fehler für das Schlüsselwort |
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 |
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 |