C # 2010, ODP.net, вызов массива передачи хранимых процедур

У меня есть хранимая процедура PL / SQL, которая принимает 4 входа. Одним из таких входных данных является ассоциативный массив (тип Oracle: таблица индекса VARCHAR2 (1) от PLS_INTEGER).

Я хочу иметь программу на C #, которая вызывает эту хранимую процедуру с соответствующими входными данными, включая ассоциативный массив.

Я использую ODP.net 11.2 с Visual C # 2010 Express и Oracle 11gR2.

Я не могу найти хороших примеров того, как передать массив в процедуру pl / sql из C #. Кто-нибудь может дать мне пример? Следование документации Oracle точно дает мне ошибку, говоря неверное количество или тип аргументов.

Мой код C #:

        OracleCommand cmd = new OracleCommand("begin sdg_test.sdg_test2(:1); end;", conn);

        OracleParameter Param1 = cmd.Parameters.Add("1", OracleDbType.Varchar2);

        Param1.Direction = ParameterDirection.Input;

        Param1.CollectionType = OracleCollectionType.PLSQLAssociativeArray;

        Param1.Value = new string[22] { "Y", "Y", "N", "Y", "N", "Y", "Y", "Y", "Y", "Y", "N", "Y", "N", "Y", "Y", "Y", "Y", "Y", "N", "Y", "N", "Y" };

        Param1.Size = 22;
        Param1.ArrayBindSize = new int[22] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };

        cmd.ExecuteNonQuery();

        conn.Close();
        conn.Dispose();

Все, что я делаю, это регистрирую сообщение. Я просто пытаюсь заставить эту концепцию работать.

Ответы на вопрос(1)

Ваш ответ на вопрос