powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Oracle ODP. (.NET) Как в запросе можно использовать ассоциативный массив через UDT
2 сообщений из 2, страница 1 из 1
Oracle ODP. (.NET) Как в запросе можно использовать ассоциативный массив через UDT
    #37988865
Hazard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток, коллеги.
Помогите разобраться, как можно использовать ассоциативный массив для передачи параметра в запрос. Например, в PL/SQL такое работает :

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE OR REPLACE
TYPE NUMBERS as table of number

declare
  ds NUMBERS := NUMBERS();
begin
  ds.extend();
  ds(ds.count) := 100;
  ds.extend();  
  ds(ds.count) := 116;
  for cur in (select * from all_objects t, table(ds) c
                WHERE t.object_id = c.column_value) loop
    dbms_output.put_line ('cur '||cur.object_id||' cur name '||cur.object_name);                
  end loop;                
end; 




Пробую выполнить в .NET select * from all_objects t, table(:ds) c
WHERE t.object_id = c.column_value

используя входной параметр

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
            cmd.Parameters.Add("DS", Oracle.DataAccess.Client.OracleDbType.Array, System.Data.ParameterDirection.Input);
            cmd.Parameters["DS"].UdtTypeName = "NUMBERS";

            private List <int> arrayIN = new List <int>();
            arrayIN.Add (100);
            arrayIN.Add (116);

            cmd.Parameters["DS"].Value = arrayIN;
                using (Oracle.DataAccess.Client.OracleDataAdapter da = new Oracle.DataAccess.Client.OracleDataAdapter())
                {
                    da.SelectCommand = cmd;
                    cmd.CommandText = baseQueryIN;
                    da.Fill(dt);
                }



при выполнении метода Fill (dt) возникает исключение

Ungültiges Parameter-Binding
Parameter name: DS

может, у кого есть рабочий пример с выполнением SQL и передачей ассоциативного массива?
...
Рейтинг: 0 / 0
Oracle ODP. (.NET) Как в запросе можно использовать ассоциативный массив через UDT
    #37988964
Hazard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как оказалось, необходимо создавать custom class для UDT параметра.


ссылка, с примером


http://www.codeproject.com/Articles/33829/How-to-use-Oracle-11g-ODP-NET-UDT-in-an-Oracle-Sto
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Oracle ODP. (.NET) Как в запросе можно использовать ассоциативный массив через UDT
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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