Als «error-handling» getaggte Fragen

4
So unterbrechen Sie die SQL-Skriptausführung
Ich arbeite an SQL-Skript und muss das Skript nicht mehr fortsetzen, wenn einige Bedingungen nicht erfüllt sind. Wenn ich es google, habe ich festgestellt, dass der RaisError mit 20 Schweregraden es beenden wird. Aber aus bestimmten Gründen kann ich diese Option nicht verwenden. Können Sie mir bitte die möglichen Alternativen …

2
Verfügt Oracle PL / SQL über eine Standard-ASSERT-Routine?
Ich möchte eine ASSERT-Routine verwenden, die funktional derjenigen in anderen Sprachen ähnelt, dh ein Konstrukt (sei es eine Prozedur, eine Syntax ...). ASSERT( <condition>, <msg>) Wenn das <condition>im ersten Argument übergebene Argument falsch ist, wird mit der angegebenen <msg>beschreibenden Nachricht eine Ausnahme ausgelöst. Ich weiß, dass dies trivial ist, aber …

1
Generieren Sie eine Ausnahme mit einem Kontext
Wenn PostgreSQL eine Ausnahme auslöst, gibt es eine Zeile "CONTEXT" wie: ERROR: INSERT has more target COLUMNS than expressions LINE 3: ... ^ QUERY: INSERT INTO ... CONTEXT: PL/pgSQL FUNCTION "XXXXX" line 4 at SQL statement Aber wenn ich eine Ausnahme mache, ist diese Zeile nicht vorhanden. Ich habe nicht …


2
Wie erhalte ich einen Ausnahmekontext für eine manuell ausgelöste Ausnahme in PL / pgSQL?
In Postgres erhalten wir die "Stapelverfolgung" von Ausnahmen unter Verwendung dieses Codes: EXCEPTION WHEN others THEN GET STACKED DIAGNOSTICS v_error_stack = PG_EXCEPTION_CONTEXT; Dies funktioniert gut für "natürliche" Ausnahmen, aber wenn wir eine Ausnahme mit auslösen RAISE EXCEPTION 'This is an error!'; ... dann gibt es keine Stack-Trace. Laut einem Eintrag …

3
So protokollieren Sie Fehlerdetails, wenn Sie try / catch für dynamische SQL-Sicherungsbefehle verwenden
Wenn Sie einen Sicherungsbefehl innerhalb einer gespeicherten Prozedur ausgeben, die einen try catch und eine dynamische SQL verwendet, sind die Fehlermeldungen im Vergleich zur direkten Ausführung des Sicherungsbefehls sehr allgemein. Try / Catch in SP: begin try execute sp_executesql @sql; -- a backup command end try begin catch print ERROR_MESSAGE(); …


2
Vor- und Nachteile Überprüfen Sie, ob ein Wert für eine eindeutige Spalte vorhanden ist, oder lassen Sie db beim Einfügen einen eindeutigen Fehler auslösen
Als ich neulich eine Anfrage schrieb, kam mir ein Gedanke und ist mir in den Sinn gekommen. Was ist vorzuziehen, indem Sie zuerst prüfen, ob ein Wert für eine eindeutige Spalte vorhanden ist, und dann einfügen oder einfügen und db einen eindeutigen Einschränkungsfehler auslösen lassen? Wird es überhaupt eine Rolle …

1
Ausgabeparameter nicht gesetzt, wenn die gespeicherte Prozedur in einem TRY / CATCH fehlschlägt
In SQL Server 2008 (aber auch 2014). Betrachten wir eine Prozedur mit einem Ausgabeparameter. Diese Prozedur kann einen Fehler erzeugen (und wird im folgenden Beispiel auftreten). Ich stelle fest, dass das Verhalten des Ausgabeparameters nicht dasselbe ist, wenn wir die Prozedur innerhalb eines TRY/ CATCHBlocks aufrufen . Beispiel: create procedure …


1
Der CATCH-Block wird ausgelöst, wenn dies nicht der Fall sein sollte
Auf meiner unendlichen Suche, mich mit einer sicheren Transaktion in den Fuß zu schießen, habe ich anscheinend noch mehr Möglichkeiten gefunden, um den Questzweck zu erfüllen. Die Sicherungs-Transaktionsklausel selbst kommt diesmal nicht in Frage, aber deshalb habe ich den folgenden Code geschrieben. Betrachten Sie das folgende vollständige Beispiel mit verschachtelten …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.