从 Informix SPL 例程中执行与传统 sleep() 系统调用的语义等效的最佳方法是什么?换句话说,只需“暂停” N 秒(或毫秒或其他什么,但几秒就可以了)。我正在寻找一种不涉及将一些新的(可能由我编写的)C 代码或其他库链接到 Informix 服务器的解决方案。这必须是我可以完全从 SPL 做的事情。IDS 10 或 11 的解决方案会很好。
@RET - “显而易见”的答案对我来说并不明显!我不知道 SYSTEM 命令。谢谢!(是的,我就是你认为的那个人。)
是的,它仅用于调试目的。不幸的是,SPL 中的 CURRENT 将始终返回相同的值,在调用的入口处设置:
“从 SPL 函数内部对 EXECUTE FUNCTION(或 EXECUTE PROCEDURE)语句调用的任何对 CURRENT 的调用都会在 SPL 函数启动时返回系统时钟的值。”
— IBM Informix SQL 指南
将 CURRENT 包装在它自己的子程序中没有帮助。在第一次调用包装器时,您确实会得到不同的答案(前提是您使用的是 YEAR TO FRACTION(5) 或其他具有足够高的分辨率来显示差异的类型),但随后您会在每一个上得到相同的值随后的调用,确保任何类型的循环都不会终止。