Oracle10g Office 2010查询崩溃

Oracle10g Office 2010查询崩溃,oracle10g,excel-2010,ms-query,Oracle10g,Excel 2010,Ms Query,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, TRANSACTIO

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')
它在2007年MS中运行良好

这在数据库中运行良好,我需要使用like,因为我需要所有以5开头的帐户id

它正在从oracle数据库中提取数据,我们正在使用oracle 10 g


我正在使用oracle 10G ODBC驱动程序

我会尝试将您的查询包装到子查询中。在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')
) 

我会尝试将您的查询包装成子查询。在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')
) 

它有多大?返回了多少行?您是否在Oracle中运行过它,因为它在这里看起来不太正确,请参见OPS$CPDMUSER.TRANSACTION\u DETAIL TRANSACTION\u DETAIL。你能避免吗?你是如何连接到数据库-ODBC的?如果是,您使用的是哪种ODBC驱动程序?你试过别的司机吗?有多大?返回了多少行?您是否在Oracle中运行过它,因为它在这里看起来不太正确,请参见OPS$CPDMUSER.TRANSACTION\u DETAIL TRANSACTION\u DETAIL。你能避免吗?你是如何连接到数据库-ODBC的?如果是,您使用的是哪种ODBC驱动程序?你试过别的司机吗?