我想知道如何使用等价于:
SET ARITHABORT ON
和
WITH RECOMPILE option
在informix 存储过程中?
我想知道如何使用等价于:
SET ARITHABORT ON
和
WITH RECOMPILE option
在informix 存储过程中?
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 手册中的说明