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

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

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

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

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

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

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

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

1 ответ

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

Другие вопросы по тегам