Freigeben über


O2SS0055: Falscher EXCEPTION_INIT PRAGMA-Parameter (Fehler)

In diesem Artikel wird erläutert, warum der SQL Server-Migrations-Assistent (SSMA) für Oracle nicht konvertiert werden EXCEPTION_INITkann.

Hintergrund

Die Ausnahmebehandlung ist ein Programmiersprachenkonstrukt oder ein Mechanismus, der das Auftreten von Ausnahmen, spezielle Bedingungen, die den normalen Programmablauf ändern, behandeln soll. Sie können die PRAGMA EXCEPTION_INIT Ausnahmenamen anderen Oracle-Fehlercodes zuordnen, die Sie antizipieren können. Sobald Sie den Fehlercode kennen, können Sie ihn verwenden PRAGMA EXCEPTION_INIT und einen Handler speziell für diesen Fehler schreiben.

Wenn Sie versuchen, PL/SQL-Code mit einer PRAGMA EXCEPTION_INIT Ausnahme zu konvertieren, ohne eine Fehlernummer im Parameterabschnitt zu definieren, generiert SSMA eine Fehlermeldung, da kein numerisches Literal gefunden wird. Es ist obligatorisch, eine negative Zahl (d. h. die Fehlernummer, für die Sie diese Ausnahme auslösen möchten) im Parameterabschnitt zu übergeben.

Beispiel

Betrachten Sie das folgende Beispiel:

DECLARE
    MYEXCEPTION EXCEPTION;
    PRAGMA EXCEPTION_INIT(MYEXCEPTION, '');
BEGIN
    NULL;
END;

Wenn Sie versuchen, den vorherigen Code in SSMA zu konvertieren, wird kein numerisches Literal im Parameterabschnitt von PRAGMA EXCEPTION_INIT und generiert daher die folgende Fehlermeldung:

O2SS0055: Falscher EXCEPTION_INIT PRAGMA-Parameter

Mögliche Abhilfen

Die Behebung dieses Fehlers besteht darin, eine Fehlernummer zu definieren, für die Sie diese Ausnahme auslösen möchten. Aktualisieren Sie den Code wie folgt:

DECLARE
    MYEXCEPTION EXCEPTION;
    PRAGMA EXCEPTION_INIT(MYEXCEPTION, -10000);
BEGIN
    NULL;
END;