ORA-30928:“通过过滤阶段连接耗尽临时表空间”

时间:2013-07-18 09:26:37

标签: oracle oracle11g

我创建了一个查询,用于在标签中显示数据。然后,此特定查询将存储到我们使用的程序中。查询运行正常,直到今天早上它返回错误ORA-30928:“通过过滤阶段连接耗尽临时表空间”。我用Google搜索并发现我可以执行以下任何操作:

  1. 包含NO FILTERING提示 - 但无法正常工作
  2. 增加临时表空间 - 不适用于我,因为它在我无法访问的生产服务器中运行。
  3. 还有其他方法可以解决此问题吗?顺便说一句,下面是我使用的查询。

    SELECT * FROM(
    SELECT
    gn.wipdatavalue 
    , gn.containername 
    , gn.l 
    , gn.q 
    , gn.d 
    , gn.l2 
    , gn.q2 
    , gn.d2 
    , gn.l3 
    , gn.q3 
    , gn.d3 
    , gn.old 
    , gn.qtyperbox 
    , gn.productname 
    , gn.slot 
    , gn.dt 
    , gn.ws_green 
    , gn.ws_pnr 
    , gn.ws_pcn 
    , intn.mkt_number dsn 
    , gn.low_number 
    , gn.high_number 
    , gn.msl
    , gn.baketime
    , gn.exptime
    , NVL(gn.q, 0) + NVL(gn.q2, 0) + NVL(gn.q3, 0) AS qtybox
    , row_number () over (partition by slot order by low_number) as n
    FROM
    (
    SELECT
    tr.* 
    , TO_NUMBER(SUBSTR(wipdatavalue, 1, INSTR (wipdatavalue || '-', '-') - 1)) AS low_number
    , TO_NUMBER(SUBSTR(wipdatavalue, 1 + INSTR ( wipdatavalue, '-'))) AS high_number
    , pm.msllevel MSL
    , pm.baketime BAKETIME
    , pm.expstime EXPTIME
    FROM trprinting tr
    JOIN CONTAINER c ON tr.containername = c.containername
    JOIN a_lotattributes ala ON c.containerid = ala.containerid
    JOIN product p ON c.productid = p.productid
    LEFT JOIN otherdb.pkg_main pm ON trim(p.brandname) = trim(pm.pcode)
    WHERE (c.containername = :lot OR tr.SLOT= :lot)
    )gn
    LEFT JOIN otherdb.intnr intn ON TRIM(gn.productname) = TRIM(intn.part_number)
    connect by level <= HIGH_NUMBER + 1 - LOW_NUMBER and LOW_NUMBER = prior LOW_NUMBER and prior SYS_GUID() is not null
    ORDER BY low_number,n
    )
    WHERE n LIKE :n AND wipdatavalue LIKE :wip AND ROWNUM <= 300 AND wipdatavalue NOT LIKE 0
    

    我也在使用Oracle 11g。

    感谢大家的帮助。

0 个答案:

没有答案