O2SS0055: parametro PRAGMA EXCEPTION_INIT non corretto (Error)

Questo articolo descrive il motivo per cui non è possibile convertire SQL Server Migration Assistant (SSMA) per Oracle EXCEPTION_INIT .

Sfondo

La gestione delle eccezioni è un costrutto del linguaggio di programmazione o un meccanismo progettato per gestire l'occorrenza di eccezioni, condizioni speciali che modificano il normale flusso di esecuzione del programma. Uno può utilizzare PRAGMA EXCEPTION_INIT per associare i nomi di eccezione ad altri codici di errore Oracle che è possibile prevedere. Quando si conosce il codice di errore, è possibile usarlo con PRAGMA EXCEPTION_INIT e scrivere un gestore specifico per tale errore.

Quando si tenta di convertire il codice PL/SQL con un' PRAGMA EXCEPTION_INIT eccezione senza definire un numero di errore nella relativa sezione di parametro, SSMA genera un messaggio di errore perché non trova un valore letterale numerico. È obbligatorio passare un numero negativo, ad esempio il numero di errore per cui si vuole generare questa eccezione, nella sezione Parameter.

Esempio

Si consideri l'esempio seguente:

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

Quando si tenta di convertire il codice precedente in SSMA, non viene trovato un valore letterale numerico nella sezione Parameter di PRAGMA EXCEPTION_INIT e quindi viene generato il messaggio di errore seguente:

O2SS0055: parametro PRAGMA EXCEPTION_INIT non corretto

Possibili soluzioni

La correzione di questo errore consiste nel definire un numero di errore per il quale si desidera generare questa eccezione. A tale proposito, aggiornare il codice nel modo seguente:

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