У меня есть приложение ASP.NET, которое обращается к базе данных Oracle 12.Я написал хранимую процедуру, используя глобальную временную таблицу, чтобы помочь.
Глобальная временная таблица создается с помощью 'ON COMMIT DELETE ROWS'.
В основном хранимая процедура выполняет следующие действия:
- Получить некоторые данные.Добавьте символ столбца.Вставьте в глобальную временную таблицу.
- Используйте клавишу (в каждой строке) для вызова другой хранимой процедуры.
- Хранимая процедура возвращает «Y» или «N».
- Возвращаемое значение будет обновлено до соответствующей строки в глобальной временной таблице.
- После того, как все строки завершены, вернитесь так:
open refcursor for select * from global_temp_table
Iпроверить хранимую процедуру.Он работает нормально.
Затем я добавляю еще одну функцию в свой веб-сервис (asmx) в свой проект ASP.NET.Я пытаюсь привлечь, но он говорит: «объект не найден».
Я прочитал несколько постов и сказал, что замените на «ON COMMIT PRESERVE ROWS».Я не хочу оставлять данные вокруг.Есть ли способ исправить эту проблему?Я уже искал некоторое время.
[Редактировать] Другие товарищи по команде добавили много других хранимых процедур в базу данных.Им не нужно предоставлять какое-либо право на это.Хранимые процедуры правильно выполняются при вызове из веб-сервиса.Конечно, их sp не используют глобальную временную таблицу.
Я искал в Интернете.Я видел подобные посты там.Вызов хранимой процедуры Oracle с использованием глобальной временной таблицы в ASP.NET покажет ту же ошибку - объект не найден.
В любом случае, я нашел способ обойти.То есть использовать предложение WITH.Вот ссылка на ссылку: https://oracle -base.com / articles / misc / with-clause
[/ Edit]