Informix SPL ルーチン内から従来の sleep() システム コールと同等のセマンティックを実行する最善の方法は何ですか? 言い換えれば、単純に N 秒間 (またはミリ秒など、数秒でも問題ありません) "一時停止" します。新しい (おそらく私が作成した) C コードやその他のライブラリを Informix サーバーにリンクする必要のないソリューションを探しています。これは、純粋に SPL から実行できるものでなければなりません。IDS 10 または 11 のソリューションで問題ありません。
@RET - 「明らかな」答えは私には明らかではありませんでした! SYSTEM コマンドについて知りませんでした。ありがとうございました!(そして、はい、私はあなたが私だと思う男です。)
はい、デバッグのみを目的としています。残念ながら、SPL 内の CURRENT は、呼び出しのエントリで設定された同じ値を常に返します。
「EXECUTE FUNCTION (または EXECUTE PROCEDURE) ステートメントが呼び出す SPL 関数内からの CURRENT への呼び出しは、SPL 関数の開始時にシステム クロックの値を返します。」
— IBM Informix SQL ガイド
CURRENT を独自のサブルーチンにラップしても役に立ちません。ラッパーへの最初の呼び出しで異なる回答が得られますが (YEAR TO FRACTION(5) または違いを表示するのに十分な解像度を持つ他のタイプを使用している場合)、すべての単一で同じ値が返されますこれにより、いかなる種類のループも終了しないことが保証されます。