ORA-01652: невозможно увеличить временной сегмент на 128 в ошибке TEMP табличного пространства при использовании DBMS_RANDOM.VALUE - PullRequest
0 голосов
/ 28 октября 2018

Ниже мой sql запрос.Здесь я фильтрую 2 набора данных из 2 разных таблиц, используя DBMS_RANDOM.VALUE.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: невозможно увеличить временный сегмент на 128 в табличном пространстве TEMP ошибка.Мне нужно получать случайную учетную запись и соответствующий номер телефона из таблиц учетных записей и телефонов каждый раз, когда я запускаю запрос.

Редактировать: Из вышеприведенного запроса мне нужно выбрать 1 случайный набор номера учетной записи и номера телефона из таблицы счетов и телефона.таблица номеровОбратите внимание, что номер счета поступает из таблицы account , а номер телефона - из таблицы phone .

Пример вывода будет состоять из 1 номера учетной записи и одного номера телефона.Пример: 123456 1234567890

Редактировать 2: Иногда это работает, но для загрузки 1 набора данных требуется около 40-60 минут, что очень нереально для моего автоматизированного тестового примера.Нужна лучшая альтернатива.

1 Ответ

0 голосов
/ 28 октября 2018

Насколько я думаю, объединение и рандомизация в этом случае потребляют много памяти динамически во время выполнения.Вам лучше ограничить ваше соединение каким-либо условием или установить ограничение Dbms_Random.value, поскольку оно превышает временное пространство как саму ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...