O2SS0054: impossibile convertire 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.

Ogni volta che si tenta di convertire il codice PL/SQL con una EXCEPTION_INIT clausola con un nome di eccezione definito dall'utente, SSMA non è in grado di convertire EXCEPTION_INIT perché non trova un'eccezione con lo stesso nome nella sezione del parametro.

Esempio

Considerare l'esempio riportato di seguito.

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

Nota

Si tratta di un esempio di codice non valido di Oracle, perché Oracle genera anche un messaggio di errore quando si tenta di eseguire questo codice.

Quando si tenta di convertire il codice precedente in SSMA, non identifica l'eccezione MYEXCEPTION_1 definita dall'utente e quindi genera il messaggio di errore seguente:

O2SS0054: impossibile convertire EXCEPTION_INIT

Possibili rimedi

La correzione di questo errore consiste nell'usare lo stesso nome durante la dichiarazione e la definizione di un'eccezione. A tale scopo, aggiornare il codice nel modo seguente:

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