C # 2010, ODP.net, wywołanie tablicy procedur przechowanych

Mam zapisaną procedurę PL / SQL, która pobiera 4 wejścia. Jednym z tych wejść jest tablica asocjacyjna (typ Oracle: tabela indeksu VARCHAR2 (1) według PLS_INTEGER).

Chcę mieć program C #, który wywołuje tę procedurę przechowywaną z właściwymi wejściami, w tym tablicą asocjacyjną.

Używam ODP.net 11.2 z Visual C # 2010 Express i Oracle 11gR2.

Nie mogę znaleźć żadnych dobrych przykładów, jak przekazać tablicę do procedury pl / sql z C #. Czy ktoś może mi dać przykład? Podążanie za dokumentacją Oracle daje mi dokładnie błąd mówiący o błędnej liczbie lub rodzaju argumentów.

Mój kod 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();

Cała moja procedura polega na zapisaniu wiadomości. Po prostu staram się, aby ta koncepcja zadziałała.

questionAnswers(1)

yourAnswerToTheQuestion