本文介绍 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;