1

MS SQL Server 2008r2 のリンクされた Informix テーブルに問題があります。このテーブルにクエリを実行すると、渡した基準の一部は無視されますが、他の基準は無視されないようです。たとえば、rowdate フィールドに条件を設定すると、実行プランのリモート クエリ部分に WHERE 句が表示されませんが、ACD などの別のフィールドに条件を設定すると表示されます。

rowdate フィールドでは基準を満たさないようですが、他のすべてでは基準を満たしているようです。

フィールドが Informix 側で索引付けされていることはわかっています。リンクしているテーブルがAvaya CMSからのものであり、OpenLink ODBCドライバーを介してリンクされている場合に役立ちます。

編集:

私の知る限り、それは Informix Dynamic Server 2000 であり、Solaris 上にあります。列は正しい DATE データ型として表示されます。私は、'2010-08-03 00:00:00'、'2010-08-03'、CONVERT(date,'2010-08-03') などの基準を渡してみました。データが SQL サーバーに返されるときの形式は yyyy-mm-dd です。

実行計画を表示すると、他のすべての基準とそれに続く行日付フィールドのみのフィルターを含むリモート クエリが表示されます。

rowdate にはインデックスが付けられており、ドライバーは通常、他のアプリケーション (ビジネス オブジェクトや MS Access) で使用するときにその情報を通信し、問題がないことを知っています。

4

2 に答える 2

0

以下のクエリ例:

select *
from OPENQUERY (AVAYA, 'select row_date,starttime,intrvl,acd from root.hagent where
row_date = ''NOV-22-2012'' and acd = 1 and split = 1 and starttime = 1900')

ちなみに、MMM-DD-YYYYとMmm-DD-YYYYの両方で正確なデータを抽出することができました。

于 2012-11-23T19:27:20.563 に答える
0

私はそれを理解することができましたが、それはこれまでで最も奇妙なことです。さまざまな形式で日付を渡す方法をたどりました。私のデフォルトは通常のYYYY-MM-DDを使用することですが、もちろん機能しませんでしたので、YYYY-MMM-DDを試しましたが、まだ何もありません。たくさんの組み合わせを試した後、Mmm-DD-YY で動作するものを見つけました。まさにそれでなければなりません! SEP-21-2010 は機能しませんが、Sep-21-2010 です。

これは、Informix からの奇妙なハングアップなのか、それともドライバーの何かなのか、とにかく動作します。

余談ですが、アメリカの人々が日付を月、日、年と書くのがいかに奇妙であるかに気づいた人はいますか? ちょっと立ち止まって考えてみてください。2410という数字を「400、10、2000」と言いますか?それについての最もよい部分は、これを自問してみてください、アメリカの独立記念日は何日ですか? ほとんどのアメリカ人は、「7 月 4 日だから簡単だ」と言います。その皮肉を見るために、SOコミュニティに任せます

于 2010-09-21T07:23:26.217 に答える