на вашем месте я бы посмотрел надстройку ODP для Visual Studio.При этом вы можете подключиться к своей базе данных, выбрать UDT в базе данных и «Создать пользовательский класс», чтобы получить класс .net, который вы можете использовать.
Загляните внутрь класса, и вы поймете, что означает Харрисон,Обратите особое внимание на атрибуты OracleObjectMappingAttributes поверх свойств и переопределения To / FromCustomObject.
Когда вы создаете OracleCommand, OracleParameter.Value должен быть классом этого типа.
Это должно помочь вам начать на высоком уровне.Слово предупреждения, хотя.Код, сгенерированный ODP, уродлив, если не сказать больше - мы собираемся исключить все сгенерированные ODP классы в нашем собственном сценарии.Но вам нужно понять, что такое вещи, как IOracleCustomType, IOracleCustomTypeFactory, IOracleArrayTypeFactory, INullable, прежде чем вы сможете это сделать.
Кстати, поскольку ваш конкретный вопрос окружает массивы, вы можете захотеть посмотретьOracle NTYPE здесь, а не TYPE.