Это меня довольно запутало. Я написал запрос, который работает нормально с моего клиента разработки, но не работает на рабочем клиенте с ошибкой «ORA-01652: невозможно увеличить временный сегмент на ....». В обоих случаях база данных и пользователь совпадают. На моей машине разработки (MS Windows) у меня есть SQL * PLUS (выпуск 9.0.1.4.0) и Toad 9.0 (оба используют версию 9.0.4.0.1 файла oci.dll). Оба запускают код без ошибок.
Однако, когда я запускаю один и тот же файл для той же базы данных, используя одно и то же имя пользователя / пароль с другого компьютера, на этот раз версия 10.2.0.4.0 (из клиента мгновенного доступа 10.2.0.4-1), я получаю ошибка.
Это происходит воспроизводимо.
К сожалению, у меня только ограниченный доступ к представлениям словаря в базе данных, которая настроена только для чтения (даже не могу получить план объяснения!).
Я попытался обойти эту проблему, настроив запрос (подозреваю, что существует большой промежуточный набор результатов, который впоследствии урезается), но мне не удалось изменить поведение ни на одном из клиентов.
Может быть возможно развернуть другую версию клиента на компьютере, вызывающем проблемы, но в настоящее время это похоже на переход к предыдущей версии.
Есть идеи?
ТИА
Обновление
Основываясь на ответе Гэри ниже, я взглянул на сценарии glogin.sql - единственное отличие заключалось в том, что SET SQLPLUSCOMPATIBILITY 8.1.7 присутствовал на работающем клиенте, но отсутствовал на отказавшем клиенте - но его добавление не давало решить проблему.
я тоже пробовал
alter session set workarea_size_policy=manual;
alter session set hash_area_size=1048576000;
и
alter session set sort_area_size=1048576000;
безрезультатно: (
Обновление 2
Мне удалось найти то же самое поведение, на этот раз, разговаривая с бэкэндом Oracle 8i. В данном случае база данных была RW. Это позволило мне подтвердить, что разные клиенты, как я подозревал, генерировали разные планы. Но почему ????
Глядя на вывод 'SHOW PARAMETERS', оба клиента сообщили точно такие же настройки !