使用 ADO.NET 和 Oracle 进行高级数据访问
使用 ADO.NET 和 Oracle 进行高级数据访问
[转自MSDN]
引言.NET Framework Data Provider for Oracle 并不总是能够方便地检索出以复杂方式存储的数据。本文将讨论如何访问存储在下表中列出的 Oracle 特定的数据类型中的数据:
返回页首 AnyOracle 9i 引入了三种可供存储通用数据(即任何已知的数据类型或未命名的数据类型)的数据类型。这些数据类型为:
控制台输出为:
返回页首 BFILEBFILE 数据类型是对存储在操作系统文件的数据库之外的二进制数据的引用。它的最大值为 4GB。存储在这些列中的数据是只读的。
以下代码将创建一个包含 BFILE 数据类型列的表格:
以下代码将检索 BFILE 并将其内容保存到一个字符串中:
返回页首 Interval
Interval 数据类型用于指定时间间隔。有两种 Interval 数据类型:
控制台输出为:
返回页首 LOBOracle LOB 数据类型可以存储高达 4GB 大小的非结构化数据(例如,多媒体内容和文本)。LOB 允许随机和分段访问数据。Oracle 建议在新应用程序中使用 LOB 类型,而不要使用 LONG RAW 类型。与 LONG RAW 不同的是,一个表格中可以包含多个 LOB 列。LOB 数据类型包括:
控制台输出为:
返回页首 RAW存储不希望被解释的可变长度的二进制数据或其他数据。Oracle 不会象处理 VARCHAR2 那样试图解释这些 RAW 数据,例如不会转换字符集或填充空白。
RAW 数据类型是为了与现有应用程序兼容而提供的,在新的应用程序中,应该使用 LOB 和 BFILE 数据类型。
有两种 RAW 类型:
返回页首 REF CURSOR
此数据类型指向 PL/SQL 查询所返回的结果集。REF CURSOR 被用作输出参数,负责将结果集从 Oracle 结构化程序返回给调用应用程序。可以在行集内移动游标以返回多行。
使用 REF CURSOR 输出参数将结果集从 Oracle 结构化程序返回给调用应用程序。
以下数据包和数据包正文将 REF CURSOR 返回给 HR.EMPLOYEES 表格中包含所有员工的结果集。数据包定义如下:
返回页首 ROWIDOracle 使用此数据类型存储数据库中每一行的唯一地址。ROWID 类型包括:
控制台输出为:
返回页首 Timestamp用于表示日期/时间值的数据类型。此数据类型向 DATE 类型添加小数秒以提高精度。Timestamp 数据类型使用精度参数定义秒字段中存储的数据的精度,精度值范围从 0 到 9,默认值为 6。有三种 Timestamp 数据类型:
以下代码将检索三种 Timestamp 数据类型的值:
控制台输出为:
返回页首 UriTypeUriType 数据类型存储指向内部或外部统一资源标识符 (URI) 资源的指针,它们可以引用一个文档或文档中的特定部分。从通用 UriType 数据类型派生出以下子类型:
以下代码将检索三个 UriTypes 的 URL 以及作为 CLOB 的 HTTPURITYPE 和 DBURITYPE 的内容:
控制台输出为:
返回页首 User DefinedUser-defined 数据类型包括内置的数据类型和其他由用户定义的数据类型。User-defined 数据类型提取应用程序数据中真实世界实体的结构。此类型是以下对象的模板:该对象通过名称标识并具有属性(内置类型或其他由用户定义的类型)和方法。
以下代码将创建用户定义的类型 Employee_t:
控制台输出为:
返回页首 XmlType此数据类型使用一个隐含的 CLOB 在表格中存储 XML 文档。此数据类型包含多个成员函数,它们可用于创建 XML、对文档执行 XPath 查询、提取数据片断、验证 XML 以及返回内容。
以下代码将创建一个包含 XMLType 列的表格:
以下代码将使用 XMLType 的 GETSTRINGVAL 成员函数检索 XMLType 列的值:
控制台输出为:
返回页首 结论Oracle 提供的多种数据类型可以帮助您处理复杂数据,包括存储在数据库内或数据库外的大型对象、XML、通用 (ANY) 数据、日期和时间以及用户定义的聚合数据结构。Microsoft .NET Framework 1.1 中的 Microsoft .NET Oracle Provider 提供了 System.Data.OracleClient 命名空间中的类型,使您可以方便地访问和操作存储在这些类型中的数据。
返回页首 参考资料
ADO.NET Cookbook
ADO.NET in a Nutshell
Bill Hamilton 是一位软件设计师,他专门研究使用 Microsoft .NET 和 J2EE 技术设计、开发以及实现分布式应用程序。作为新技术的最早采用者,他经常为客户提供评估、建议和帮助,以帮助客户有效地使用新技术。Bill 著有两本关于 ADO.NET 的书,如上面的参考资料部分所示。
? 2004 Microsoft Corporation 版权所有。保留所有权利。使用规定。
返回页首
我的异常网推荐解决方案:oracle存储过程,http://www.myexception.cn/oracle-develop/177537.html