如何使用ODP.NET Managed Client编写C#自定义类来处理Oracle UDT中的SDO_GEOMETRY?

3
我卡在了如何编写一个自定义的C#类上,以便从Oracle数据库中获取、更新/插入sdo_geometry类型字段(这是Oracle用户定义类型和.NET自定义类型)以及其他非utd字段值。我在Google上搜索了很多,在Oracle.DataAccess.dll(odp.net非托管驱动程序)内部使用的类型的帮助下编写出了自定义代码。尽管我被指示要使用odp.net的托管版本(使用Oracle.ManagedDataAccess.dll)编写相同的自定义代码,但当我查看此dll时,我找不到在Oracle.DataAccess.dll中定义的某些类和接口,因此我无法利用现成的代码,而且我被告知使用odp.net托管驱动程序比使用odp.net非托管驱动程序更容易部署编写的代码。我甚至尝试使用Visual Studio内部的自定义类代码生成器,但它没有给我任何C#自定义类,而是在完成过程中卡住并抛出错误。对此的任何建议将不胜感激。
3个回答

3

1
此软件包使用非托管驱动程序(Oracle.DataAccess)。 托管驱动程序(Oracle.ManagedDataAccess)仍不支持用户定义类型。 [链接](https://docs.oracle.com/database/121/ODPNT/intro004.htm#ODPNT8146) - Martin

2
根据Oracle产品开发团队的帖子,我认为目前无法使用管理驱动程序与UDTs。但是,您可以通过包装函数/过程/软件包序列化它而不使用UDT来尝试成功。请参考以下链接:Migration Guide for ODP.NET Managed Driver Oracle.ManagedDataAccess (from Unmanaged Driver - Oracle.DataAccess)。Alex_Keh - Oracle_Product_Manager于2014年3月31日11:11 AM回复kiquenet时指出,管理ODP.NET尚未支持UDTs和VARRAYs。对于已支持功能,迁移应该只需要更改命名空间引用和管理ODP.NET查找*.ora配置文件的方式。

是的,我早就弄清楚了,不过还是谢谢你的回复。 - user2913184

0

虽然这个链接可能回答了问题,但最好在此处包含答案的基本部分并提供参考链接。如果链接页面更改,仅有链接的答案可能会失效。-【来自审查】 - Hoppeduppeanut

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接