Ошибки PL / SQL Внезапно - PullRequest
0 голосов
/ 08 июня 2018

Я занимаюсь разработкой сценария PL / SQL с использованием TOAD.На этом этапе разработки я отлаживаю его.Это включает в себя: завернуть раздел в начало / конец, F5 запустить его, получить информацию об ошибке, исправить проблему, повторить.

Внезапно, из ниоткуда, я получаю

  ORA-00604: error occurred at recursive SQL level 2
  ORA-01654: unable to extend index SYS.I_OBJ5 by 128 in tablespace SYSTEM

Сценарий начинается с набора таблиц / создания таблицы инструкций для простой таблицы с двумя полями в моей схеме входа в систему.После того, как это начало происходить, я сузил часть, которую я перезапускаю, до одной строки: drop table < tblName >

Пытаясь сузить это, я, наконец, пошел кБраузер схемы TOAD, щелкнув правой кнопкой мыши по таблице и выбрав «Удалить таблицу» из контекстного меню, - тот же результат.

Вчера я должен был выполнить это утверждение 120 раз, и это не доставило мне никаких проблем.Сейчас?Не случилось!Я действительно в тупик.Может быть, все эти запуски загрузили какую-то область, которая сейчас заполнена?Часть этого скрипта открывает файлы файловой системы.Я не знал, что мне пришлось тогда их закрывать, и я столкнулся с «Это действие привело бы к« открытию слишком большого количества файлов »(каждый повторный запуск открывал еще один). Я сделал что-то подобное, удалив и воссоздав эту таблицу?так много раз?

1 Ответ

0 голосов
/ 13 июня 2018

Я согласен с @Peter M, скорее всего, ваше табличное пространство SYSTEM заполнено.

В сообщении об ошибке сказано достаточно ясно: unable to extend index ... in tablespace SYSTEM означает, что Oracle исчерпал пространство при попытке увеличить индекс.Табличное пространство SYSTEM используется Oracle для внутренних целей, например для списка таблиц и столбцов.Поэтому он очень важен и обычно хорошо контролируется администраторами баз данных и поддерживается в чистоте от других объектов, таких как таблицы разработчика.Имя схемы SYS также указывает в этом направлении.

Другая подсказка - recursive SQL: Oracle запускает не только ваш SQL (например, CREATE TABLE), но иногда ему нужно выполнить некоторые действия, такие как обновление указанного списка.таблицы, что также делается с помощью SQL.Второй аромат называется recursive.

Поэтому я бы предположил, что не ваша таблица вызывает переполнение табличного пространства SYSTEM, а множество изменений.

Если бы это произошло на моем рабочем месте, я бы получилДружеский телефонный звонок от администратора базы данных с вопросом, что происходит ...

...