Какой лучший способ сделать семантический эквивалент традиционного системного вызова sleep () из подпрограммы Informix SPL? Другими словами, просто «пауза» на N секунд (или миллисекунды или что-то еще, но секунды в порядке). Я ищу решение, которое , а не предполагает подключение некоторого нового (возможно, написанного мной) кода C или другой библиотеки к серверу Informix. Это должно быть то, что я могу сделать исключительно из SPL. Решение для IDS 10 или 11 было бы хорошо.
@ RET - «Очевидный» ответ не был очевиден для меня! Я не знал о команде SYSTEM. Спасибо! (И да, я тот парень, о котором ты думаешь.)
Да, это только для целей отладки. К сожалению, CURRENT в SPL всегда будет возвращать одно и то же значение, установленное при входе в вызов:
"любой вызов CURRENT изнутри функции SPL, которую вызывает оператор EXECUTE FUNCTION (или EXECUTE PROCEDURE), возвращает значение системных часов при запуске функции SPL."
& ndash;
Руководство IBM Informix по SQL
Упаковка CURRENT в свою собственную подпрограмму не помогает. Вы получаете другой ответ при первом обращении к вашей оболочке (при условии, что вы используете YEAR TO FRACTION (5) или какой-либо другой тип с достаточно высоким разрешением, чтобы показать разницу), но затем вы получаете то же значение обратно на каждый последующий вызов, который гарантирует, что цикл любого рода никогда не прекратится.