ORA-01652:使用DBMS_RANDOM.VALUE时无法在表空间TEMP错误中将温度段扩展128

时间:2018-10-28 15:00:10

标签: sql oracle

下面是我的SQL查询。在这里,我正在使用DBMS_RANDOM.VALUE从2个不同的表中过滤2组数据。 Oracle SQL加载时间很长,并且抛出以下错误。我尝试搜索相同的错误。但是答案并不能解决我的问题。请让我知道是否还有其他方法可以达到目的。

select * from (select ac.account, ph.phone_no
from account ac, phone ph
and ac.account_status = 'OPEN'
and ac.account_type ='1'             
and ac.account_sub_type ='2'
and ac.account = ph.phone_account
order by DBMS_RANDOM.VALUE)
where rownum = '1';

我看到 ORA-01652:无法在表空间TEMP中将临时段扩展128 错误。每次我运行查询时,我都需要从帐户和电话表中获取随机帐户和相应的phone_no。

编辑:从上面的查询中,我需要从“帐户”表和“电话号码”表中随机选择1组帐户和电话号码。请注意,帐号来自帐户表,电话号码来自电话表。

示例输出将只是1个帐号和1个电话号码。例如:123456 1234567890

编辑2:有时它可以工作,但是大约需要40-60分钟才能加载1组数据,这对于我的自动测试用例来说是非常不现实的。需要更好的选择。

1 个答案:

答案 0 :(得分:1)

据我所知,这种情况下的连接和随机化在运行时动态消耗大量内存。您应该在某些情况下限制连接,或者将Dbms_Random.value设置为受限,因为它超出了临时空间作为错误本身。