2016-11-02 6 views
1

修正できないという奇妙な問題があります。アテンプトoracleデータベースの行を1時間以上削除してタイムアウトが発生しました

タイムスタンプが1時間より古いすべての行を削除しようとしています。

SQL:SQL Developerで完璧

DELETE FROM TABLE WHERE TIMESTAMP <= SYSTIMESTAMP - 1/24 

コード全体の仕事しかし、私はタイムアウトを持ってiBatis.netで同じことをしてみてください。

<statements> 
    <delete id="DeleteRows" parameterClass="int"> 
     <![CDATA[ 
     DELETE FROM TABLE WHERE TIMESTAMP <= SYSTIMESTAMP - #VALUE#/24 
<!--THIS DON'T WORK--> 
     ]]> 
    </delete> 
    </statements> 

別の奇妙なことは、i「が等しい-に」 例えば

<statements> 
    <delete id="DeleteRows" parameterClass="int"> 
     <![CDATA[ 
     DELETE FROM TABLE WHERE TIMESTAMP = SYSTIMESTAMP - #VALUE#/24 
<!--THIS WORK--> 
     ]]> 
    </delete> 
    </statements> 

タイムアウトのみレ - よりとgrater-と私GENに満たないオペレータハンゲ時には存在しないという問題があります演算子よりもiBatis.netだけです。どんな身体もなぜ知っていますか?

面白い事実。私はDELETE FROM TABLE WHERE TIMESTAMP < '07-AUG-11'を照会すると動作します。また、私はDELETE FROM TABLE WHERE TIMESTAMP BETWEEN '07-AUG-11' AND SYSTIMESTAMPをクエリしようとすると、それも動作します。 <>との組み合わせで問題があるようですSYSTIMESTAMP これらの演算子を使用せずに1時間以上経過した行を削除する方法はありますか? おかげ

答えて

0

将来的に誰かがこれを解決する必要があったため、私自身の質問に回答を追加しました。

まず私は、新しい選択クエリを作成しました:

<select id="DbTime" resultClass="DateTime"> 
    <![CDATA[SELECT SYSTIMESTAMP FROM DUAL]]> 
</select> 

そこで私は、この選択

DateTime currentDate = DataSources.DB.QueryForObject<DateTime>("Map.DbTime", null); 
DateTime finalDate= currentDate.AddHours(-24); 

を実行し、パラメータ

<delete id="DeleteRows"> 
    <![CDATA[ 
    DELETE FROM TABLE WHERE TIMESTAMP < #value# 
    ]]> 
</delete> 

としてfinalDateを渡す「今は働いているが、それでもドンなぜ私の最初の解決策が働きたいのか分かりません。

1

あなたが開いているトランザクションを持っているかどうかを確認してください)a))はiBatis.NETに

bはそれを行う方法がわからない(クエリを実行しているたDbCommandのためのCommandTimeoutのを増やし

する必要があるかもしれませんデッドロック(行が使用可能になるのを待っているのを削除する)を引き起こしています。View open transactions in Oracle

+0

1分後にタイムアウトが発生するため、かなり長いです。この問合せを実行するSQL Developerでは、約0.2秒です。私はこのテーブルを使っていますので、そこに他の接続があります。面白い事実。私が 'DELETE FROM TABLE WHERE TIMESTAMP <'07 -AUG-11 ''をクエリすると、それは動作します。また、 'DELETE FROM TABLE WHERE TIMESTAMP '07 -AUG-11 'AND SYSTIMESTAMP'も照会しようとすると動作します。 '<' and '>' – Aht

+0

で問題があるようです。オプティマイザのように見えますが、それは私の範囲外です。ここでは、https://community.oracle.com/thread/996993&http://を開始するリンクをいくつか示しています。 dba.stackexchange.com/questions/104797/is-index-performance-on-a-timestamp6-column-impacted-when-converting-it-to-an –

+0

他のクエリを使用して問題を解決できました – Aht

関連する問題