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

Oracle ORA-30928:“通过筛选阶段连接耗尽临时表空间”,oracle,oracle11g,Oracle,Oracle11g,我创建了一个查询,用于在标签中显示数据。然后,这个特定的查询将被存储到我们使用的程序中。查询一直正常运行,直到今天早上返回错误ORA-30928:Connect by filtering phase耗尽临时表空间。我在谷歌上搜索发现,我可以做以下任何一项: 包括“无筛选”提示-但未正常工作 增加临时表空间-不适用于我,因为它在我没有任何访问权限的生产服务器中运行。 还有其他方法可以解决这个问题吗?顺便说一下,下面是我使用的查询 SELECT * FROM( SELECT gn.wipdatava

我创建了一个查询,用于在标签中显示数据。然后,这个特定的查询将被存储到我们使用的程序中。查询一直正常运行,直到今天早上返回错误ORA-30928:Connect by filtering phase耗尽临时表空间。我在谷歌上搜索发现,我可以做以下任何一项:

包括“无筛选”提示-但未正常工作 增加临时表空间-不适用于我,因为它在我没有任何访问权限的生产服务器中运行。 还有其他方法可以解决这个问题吗?顺便说一下,下面是我使用的查询

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
我也在使用Oracle11g


谢谢大家的帮助。

为什么查询中的wipdatavalue与0不同?这看起来很奇怪,它只会排除文本值“0”。您的意思是wipdatavalue不象“0%”吗?您好,Frank,我们特别使用查询中不象“0”的部分来查询wipdatavalue为零的所有数据。一旦做了错误的事务,他们可以将我们的wipdatavalue归零,这样它就不会显示在结果集中。我只是想知道为什么不使用wipdatavalue!='那么0英尺?对我来说似乎更简单。我建议你检查你的解释计划并尝试调整你的查询,从我个人的经验来看,有多个嵌套子查询会降低你的性能,即需要更多的处理/数据更多的表空间temp表空间是一种共享资源。其他一些查询可能占用了99%的临时表空间。您可能希望让他们的DBA在责怪您的查询之前检查使用了多少资源。另外,先前的系统GUID不为空有什么意义?