2009-05-28 12 views
2

Informixで20秒以上経過した行を削除するには次のようにします。Informixでパラメータを使用して区間を定義する

delete from sometable 
where someDateColumn < (current - interval (20) second to second); 

はしかし、私は、ストアドプロシージャ内の間隔は、設定したいが、私は自分の答えを見つけた

CREATE PROCEDURE i_hate_informix (prm_timeframe int) 
    DELETE sometable 
    WHERE someDateColumn < (current - interval (prm_timeframe) second to second); 
END PROCEDURE; 
+1

です。私はinformixを嫌いです。 –

+1

少しひどいですね。それはおそらくあなたを憎むことではありません。あなたが見つけた解決策は、とにかく明示的なINTERVALデータ型を使用するより簡単です。 – RET

+0

いいえ、「嫌い」はおそらく強すぎます。 SQL Serverと比べると、-----の痛みです。 –

答えて

3

私が行うことはできません。

間隔で変数を動的に定義することはできません。しかし、あなたは "秒単位"を使用することができますので、私の手続きは

CREATE PROCEDURE i_hate_informix (prm_timeframe int) 
    DELETE sometable 
    WHERE someDateColumn < (current - prm_timeframe units second); 
END PROCEDURE; 
関連する問題