Oracle托管驱动程序用户定义的类型

时间:2018-06-05 07:46:16

标签: oracle odp.net oracle-manageddataaccess

我一直在寻找新的oracle托管驱动程序函数,因为我发现oracle中的用户定义类型不支持很多东西(OracleArrayMappingAttribute

IOracleArrayTypeFactory等...),有没有办法支持托管驱动程序中的udt类型

Oracle ODP.net Managed vs Unmanaged Driver

https://docs.oracle.com/database/121/ODPNT/intro004.htm#ODPNT8146

感谢

2 个答案:

答案 0 :(得分:2)

你是对的 - 截至今天(6/5/18)ODP.NET托管驱动程序不支持UDT。我建议使用PL / SQL存储过程将UDT转换为ODP.NET可以处理的一种或多种类型。另外,重新评估您对UDT的使用。它们具有负面的性能影响,除非您被迫(通过使用它们的Oracle PL / SQL包(例如Oracle Spatial)或其他无法包装在另一个SP中的软件包,否则我不会建议使用它们。

或者,您可以看看是否可以使用ODP.NET非托管驱动程序,但我知道这可能是不可接受的。

答案 1 :(得分:0)

三年后,.NET 和 .NET Core 的托管驱动程序的 UDT 支持来了:

21.3 版本包括 UDT 支持,您可以在博客文章中找到更多详细信息,例如如何迁移现有项目或示例代码:Announcing ODP.NET 21.3 — User-Defined Types for Managed ODP.NET and ODP.NET Core

它刚刚发布,我准备试一试,所以请不要指望我回答更多问题:D。您可能希望访问 GitHub thread 以加入讨论。