2

Office 2010 では、次のような大きなクエリを実行すると MSQuery がクラッシュします。

SELECT TRANSACTION_DETAIL.ACCT_ID, TRANSACTION_DETAIL.ACCT_DESC, 
       TRANSACTION_DETAIL.ACT_COST, TRANSACTION_DETAIL.EMPL_ID, 
       TRANSACTION_DETAIL.EMPL_NAME, TRANSACTION_DETAIL.FISCAL_QTR, 
       TRANSACTION_DETAIL.FY_CD, TRANSACTION_DETAIL.NOTES, 
       TRANSACTION_DETAIL.OBS_ORG_NAME, TRANSACTION_DETAIL.OWNING_ORG_ID, 
       TRANSACTION_DETAIL.PD_NO, TRANSACTION_DETAIL.TRANSACTION_TYPE, 
       TRANSACTION_DETAIL.TRANS_DATE, TRANSACTION_DETAIL.TRN_DESC
FROM OPS$CPDMUSER.TRANSACTION_DETAIL TRANSACTION_DETAIL
WHERE (TRANSACTION_DETAIL.ACCT_ID like '5%') 
  AND (TRANSACTION_DETAIL.FY_CD='2011')

MS 2007 では問題なく動作していました。

これはデータベースで正常に実行され、5 で始まるすべてのアカウント ID が必要なため、like を使用する必要があります。

Oracleデータベースからデータを取得しており、Oracle 10 gを使用しています

Oracle 10G ODBC ドライバーを使用しています

4

1 に答える 1

0

クエリをサブクエリにラップしてみます。Oracle で MSQuery を使用する場合、クエリ エディターでクエリを表示しようとする MSQuery から発生すると思われるいくつかの癖があります。サブクエリでラップすると、MSQuery はエディターを表示しようとするのをあきらめ、SQL をそのまま使用することになります。クエリは次のようになります。

SELECT * FROM (
SELECT TRANSACTION_DETAIL.ACCT_ID, TRANSACTION_DETAIL.ACCT_DESC, 
       TRANSACTION_DETAIL.ACT_COST, TRANSACTION_DETAIL.EMPL_ID, 
       TRANSACTION_DETAIL.EMPL_NAME, TRANSACTION_DETAIL.FISCAL_QTR, 
       TRANSACTION_DETAIL.FY_CD, TRANSACTION_DETAIL.NOTES, 
       TRANSACTION_DETAIL.OBS_ORG_NAME, TRANSACTION_DETAIL.OWNING_ORG_ID, 
       TRANSACTION_DETAIL.PD_NO, TRANSACTION_DETAIL.TRANSACTION_TYPE, 
       TRANSACTION_DETAIL.TRANS_DATE, TRANSACTION_DETAIL.TRN_DESC
FROM OPS$CPDMUSER.TRANSACTION_DETAIL TRANSACTION_DETAIL
WHERE (TRANSACTION_DETAIL.ACCT_ID like '5%') 
  AND (TRANSACTION_DETAIL.FY_CD='2011')
) 
于 2012-12-04T10:26:58.647 に答える