我一直在寻找新的oracle托管驱动程序函数,因为我发现oracle中的用户定义类型不支持很多东西(OracleArrayMappingAttribute
IOracleArrayTypeFactory等...),有没有办法支持托管驱动程序中的udt类型
Oracle ODP.net Managed vs Unmanaged Driver
https://docs.oracle.com/database/121/ODPNT/intro004.htm#ODPNT8146
感谢
答案 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 以加入讨论。