Блок данных Oracle Temporary Tables поврежден?

В упакованном SP я заполняю временную таблицу. В конце обработки процедуры я читаю временную таблицу в ref-курсор.

Когда я пытаюсь выполнить процедуру в SQL Developer, все работает как надо.

Когда я пытаюсь выполнить процедуру на классической странице ASP (используя OraOLEDB), в журналах IIS отображается сообщение «ORA-01578:_ORACLE_data_block_corrupted».

Когда я впервые увидел это и до того, как попробовал это в SQL Developer, я подумал, что файл табличного пространства поврежден, поэтому я удалил табличное пространство; воссоздал его на другом диске, а затем сообщил пользователю, что новое табличное пространство является новой временной областью.

Попробовал еще раз, то же самое, только ссылаясь на новое табличное пространство!

Я предполагаю, что есть что-то в моем использовании временных таблиц, что вызывает эту проблему?

Если важно, то, что я пытаюсь здесь сделать, это повторно использовать старый сложный SP, который раньше возвращал несколько объектов Table (ассоциативный массив). Я не хочу слишком много менять в SP, поэтому я заставил его записывать данные, которые ранее были помещены в ассоциативные массивы, во временную таблицу. Потом сбрасываю содержимое ТТ в реф-курсор. Я не понимаю, как что-либо из этого может создать сообщение «поврежденный блок данных», но я надеюсь, что кто-нибудь может мне сказать.


person glaucon    schedule 23.04.2014    source источник


Ответы (1)


Кажется, что ваша БД столкнулась с некоторой проблемой с вашим временным файлом. я бы посоветовал вам создать еще один временный файл в вашем временном табличном пространстве и после этого удалить старый временный файл. Тогда вы увидите, решена ли ваша проблема или нет.

person michael    schedule 23.04.2014
comment
Спасибо за ваш ответ. Как я уже упоминал в своем вопросе, я уже прошел процесс создания нового временного пространства и удаления старого. К сожалению, ошибка снова появляется с новым табличным пространством. - person glaucon; 24.04.2014