У меня есть функция Oracle, возвращающая запись, определенную в пакете, так что можно сделать:
select a,b,c FROM my_function(...);
Вызов этой функции оракула из .NET так же прост, как выполнение обычного SQL-запроса.
К сожалению, функция должна делать обновления сейчас, и когда она вызывается таким образом, Oracle жалуется, что обновления не разрешены внутри выбора, и это имеет смысл.
Так что теперь у меня есть выбор: изменить вызов функции или разделить функцию.
В основном я должен избавиться от выбора в вызове функции и нужно что-то вроде этого в C #:
EXEC :var:= my_func(...);
где тип var - это пользовательский кортеж, определенный в пакете.
Я уже пытался использовать ParameterDirection.ReturnValue без успеха. У кого-нибудь есть идея?