В упакованном SP я заполняю временную таблицу. В конце обработки процедуры я читаю временную таблицу в ref-курсор.
Когда я пытаюсь выполнить процедуру в SQL Developer, все работает как надо.
Когда я пытаюсь выполнить процедуру на классической странице ASP (используя OraOLEDB), в журналах IIS отображается сообщение «ORA-01578:_ORACLE_data_block_corrupted».
Когда я впервые увидел это и до того, как попробовал это в SQL Developer, я подумал, что файл табличного пространства поврежден, поэтому я удалил табличное пространство; воссоздал его на другом диске, а затем сообщил пользователю, что новое табличное пространство является новой временной областью.
Попробовал еще раз, то же самое, только ссылаясь на новое табличное пространство!
Я предполагаю, что есть что-то в моем использовании временных таблиц, что вызывает эту проблему?
Если важно, то, что я пытаюсь здесь сделать, это повторно использовать старый сложный SP, который раньше возвращал несколько объектов Table (ассоциативный массив). Я не хочу слишком много менять в SP, поэтому я заставил его записывать данные, которые ранее были помещены в ассоциативные массивы, во временную таблицу. Потом сбрасываю содержимое ТТ в реф-курсор. Я не понимаю, как что-либо из этого может создать сообщение «поврежденный блок данных», но я надеюсь, что кто-нибудь может мне сказать.