powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Oracle и .net
3 сообщений из 3, страница 1 из 1
Oracle и .net
    #38083752
ArnyHD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Входные данные:
Есть приложение на C# .net под MSSql.
Есть задача перекинуть всё это добро на Oracle, которое уже частично переписано в рамках хранилища, но не переписано в рамках приложения.
В составе этого приложения есть ряд функций с входными параметрами (для получения параметров других объектов), которые возвращают таблицы (вполне устроит возврат всего одной строки или записи\набора\record).
При попытке загнать модель базы данных в вижуал студио на таких функциях выскакивает сообщение warning 6005: The function <function_name> has a return data type 'table' that is currently not supported for the target .NET Framework version. The function was excluded.
Вероятно, можно получать данные из таблиц курсорами или наборами значений.

Как можно получить значения параметров из таблиц oracle в C# .net?

Модератор: Тема перенесена из форума "Oracle".
...
Рейтинг: 0 / 0
Oracle и .net
    #38091381
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArnyHD,

Из pipelined function

Код: plsql
1.
select * from table(my_package.my_func(:Param1, :Param2, :Param3))



В этом случае можете использовать везде в .NET коде, где можно использовать обычный select.

---

Из функции возвращающей ref_cursor
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
            using (var command = connection.CreateCommand())
            {
                command.CommandText = "my_package.my_func";
                command.CommandType = CommandType.StoredProcedure;
                
                var parameter = command.Parameters.Add(":result",
                    OracleDbType.RefCursor, ParameterDirection.ReturnValue);
                command.Parameters.Add(":p_param1", OracleDbType.Int32,
                    1/* значение параметра */, ParameterDirection.Input);
                
                command.ExecuteNonQuery();
                
                using (var cursor = (OracleRefCursor)parameter.Value)
                {
                    using (var reader = cursor.GetDataReader())
                    {
                        /* тут в примере читается только одна строка */
                        if (!reader.Read())
                            throw new ReadInfoException();

                        var values = new object[reader.FieldCount];
                        reader.GetValues(values);
                    }
                }
            }



----

Скачать ODT .NET и упростить себе жизнь. Заодно поделитесь как их EF5 провайдер с сабжем дружит? :)
...
Рейтинг: 0 / 0
Oracle и .net
    #38091384
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вангую другие вопросы. Ответы на них: VIEW, INSTEAD OF TRIGGERS.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Oracle и .net
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]