O2SS0055: parametro PRAGMA non corretto EXCEPTION_INIT (Errore)

Questo articolo illustra il motivo per cui SQL Server Migration Assistant (SSMA) per Oracle non è in grado di convertire EXCEPTION_INIT.

Background

La gestione delle eccezioni è un costrutto o un meccanismo del linguaggio di programmazione progettato per gestire l'occorrenza di eccezioni, condizioni speciali che modificano il normale flusso di esecuzione del programma. È possibile usare PRAGMA EXCEPTION_INIT per associare nomi di eccezione ad altri codici di errore Oracle che è possibile prevedere. Dopo aver appreso il codice di errore, è possibile usarlo con PRAGMA EXCEPTION_INIT e scrivere un gestore in modo specifico per tale errore.

Ogni volta che si tenta di convertire il codice PL/SQL con un'eccezione PRAGMA EXCEPTION_INIT senza definire un numero di errore nella sezione relativa ai parametri, 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 il quale si vuole generare questa eccezione, nella sezione del parametro .

Esempio

Considerare l'esempio riportato di seguito.

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 parametro di PRAGMA EXCEPTION_INIT e quindi viene generato il messaggio di errore seguente:

O2SS0055: parametro PRAGMA non corretto EXCEPTION_INIT

Possibili rimedi

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

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