次の方法で共有


O2SS0055: PRAGMA パラメーター EXCEPTION_INIT正しくありません (エラー)

この記事では、Oracle 用 SQL Server Migration Assistant (SSMA) が変換 EXCEPTION_INITできない理由について説明します。

背景

例外処理は、プログラム実行の通常のフローを変更する特別な条件である例外の発生を処理するように設計されたプログラミング言語コンストラクトまたはメカニズムです。 例外名を PRAGMA EXCEPTION_INIT 、予期できる他の Oracle エラー コードに関連付けるために使用できます。 エラー コードがわかったら、それを使用 PRAGMA EXCEPTION_INIT して、そのエラー専用のハンドラーを記述できます。

パラメーター セクションでエラー番号を定義せずに例外を持つ PRAGMA EXCEPTION_INIT PL/SQL コードを変換しようとすると、SSMA では数値リテラルが見つからないため、エラー メッセージが生成されます。 パラメーター セクションに負の数 (つまり、この例外をスローするエラー番号) を渡す必要があります。

次の例を確認してください。

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

SSMA で前のコードを変換しようとすると、パラメーター セクションに数値リテラルが見つからないため、次の PRAGMA EXCEPTION_INIT エラー メッセージが生成されます。

O2SS0055: PRAGMA パラメーター EXCEPTION_INIT正しくありません

考えられる対処方法

このエラーの解決策は、この例外をスローするエラー番号を定義することです。 コードを次のように更新します。

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