O2SS0055:EXCEPTION_INIT PRAGMA 参数不正确(错误)

本文介绍 Oracle SQL Server 迁移助手 (SSMA) 无法转换EXCEPTION_INIT的原因。

背景

异常处理是一种编程语言构造或机制,旨在处理异常的发生、更改程序执行正常流的特殊条件。 可以使用该 PRAGMA EXCEPTION_INIT 名称将异常名称与其他可以预测的 Oracle 错误代码相关联。 知道错误代码后,可以将其用于 PRAGMA EXCEPTION_INIT 该错误,并专门为该错误编写处理程序。

每当尝试转换 PL/SQL 代码时不 PRAGMA EXCEPTION_INIT 在其参数部分中定义错误号,SSMA 将生成错误消息,因为它找不到数字文本。 必须传递一个负数(即要在参数节中引发此异常的错误号)。

示例

请考虑以下示例:

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

尝试在 SSMA 中转换前面的代码时,它找不到参数部分中 PRAGMA EXCEPTION_INIT 的数字文本,因此会生成以下错误消息:

O2SS0055:EXCEPTION_INIT PRAGMA 参数不正确

可能的补救措施

修正此错误是为了定义要引发此异常的错误号。 按如下所示更新代码:

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