1

我想知道如何使用等价于:

SET ARITHABORT ON

WITH RECOMPILE option

在informix 存储过程中?

4

1 回答 1

2

SET ARITHABORT ON
Sql Server 手册说:在查询执行期间发生溢出或被零除错误时终止查询。

在 Informix 中,默认情况下,在执行任何 UDR/SP(过程或函数)期间发生的任何错误都将触发异常,这将在用户会话级别自动引发。这将包括任何算术错误。

您可以在 SPL 内部做的是相反的,包括不允许此异常到达用户会话范围的处理。为此,请阅读关于ON EXCEPTION

WITH RECOMPILE 选项
Sql Server 手册中说:创建存储过程,在其定义中指定 WITH RECOMPILE 选项表明 SQL Server 不缓存该存储过程的计划;存储过程在每次执行时都会重新编译。当存储过程采用的参数值在存储过程的执行之间差异很大时,请使用 WITH RECOMPILE 选项,从而导致每次创建不同的执行计划。使用此选项并不常见,并且会导致存储过程执行得更慢,因为每次执行存储过程时都必须重新编译它。

在 Informix 运行类似的解决方案:在此处update statistics for procedure <your_proc>; 查看Informix 手册中的说明

于 2013-04-01T17:23:39.347 回答