异常[System.InvalidOperationException: 未指定'xxx'的定制类型映射或该映射]解决方案

在使用C#代码向Oracle数据库取数据,但是因为是面向对象的方式,所以在C#中的Model对象,在Oracle中也建立了相应的对象,而且在C#的Oracle连接代码中,要做好相应的映射。

在运行的时候,发现抛出了这个异常:

ex=System.InvalidOperationException: 未指定'dataSource='xxxxxx' schemaName='xxx' typeName='xxx'的定制类型映射或该映射无效
   at Oracle.DataAccess.Types.OracleUdt.GetFactory(OracleUdtDescriptor udtDesc)
   at Oracle.DataAccess.Client.OracleParameter.SetUDTFromArray(OracleConnection conn, Object array, Int32 i)
   at Oracle.DataAccess.Client.OracleParameter.PreBind_Collection(OracleConnection conn)
   at Oracle.DataAccess.Client.OracleParameter.PreBind(OracleConnection conn, IntPtr errCtx, Int32 arraySize)
   at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior)
   at Oracle.DataAccess.Client.OracleDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
   at HCC.Base.Comm.Dao.OraHelper.ExecuteDataTableSp(String dbkey, String procName, List`1 prams) 

通过各种查找,发现问题的出处在于一不小心在Mapping代码中写错了UdtTypeName,这就导致了这个异常。把UdtTypeName拼写改正,就能使代码正常运行。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值