知识大全 在ADO.NET中使用Oracle存储程序

Posted

篇首语:知识是智慧的火炬。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在ADO.NET中使用Oracle存储程序相关的知识,希望对你有一定的参考价值。

在ADO.NET中使用Oracle存储程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  随着近来 NET Managed Provider For Oracle 的发布 NET开发人员最终拥有一套通过使用ADO NET来快速访问Oracle数据库的方法 在 前一章节 里 我讨论了如何使用Oracle管理提供者来连接和执行SQL数据库 现在让我们看看如何在Oracle存储程序中使用一个新的管理提供者     可能和你以前的方法不一样       如果你习惯于SQL服务器程序的开发 你会发觉Oracle数据库世界里是另一番天地 当运行SQL服务器程序时 访问SQL查询结果的过程正如把一个数据赋予DataReader DataSet等那样的简单 这一过程和存储程序的运行大致一样 因为当一个命令执行时 SQL服务器程序就会返回结果 表A中的代码运行了一个名为sp_persons的存储程序并把结果存放到DataSet   表A代码如下   Listing A         Dim connectionString As String Dim sqlString As String Dim dataAdapter As System Data SqlClient SqlDataAdapter; connectionString = server= test;uid=test;pwd=test;database= test dbo sqlString = sp_persons dataAdapter = New System Data SqlClient SqlDataAdapter(sql connectionString) Dim ds As New DataSet() dataAdapter Fill(ds Persons )    Oracle没有遵循SQL服务器的返回数据模式 一个Oracle查询的结果以一个指针的形式返回 这一指针也是作为Oracle存储程序的一个输出参数 所以当从 NET访问Oracle数据库时 你必须指定一个参数来指向指针     利用OracleParameter生成参数  你可以充分利用System Data OracleClient OracleParameter类 这些类能够处理输出和输入参数 并生成和配置参数 OracleCommand类包含一个能够初始化参数对象的参数属性   表B范例如下   Listing B         Dim conn As New OracleConnection() Dim m As New OracleCommand() Dim pOutput As OracleParameter Dim dr As OracleDataReader conn ConnectionString = data source=oracle server;user id=test;password=test m CommandText = DATABASE STORED_PROCEDURE_NAME m CommandType = CommandType StoredProcedure pOutput = m Parameters Add( pcur OracleClient OracleType Cursor) pOutput Direction = ParameterDirection Output m Connection = conn conn Open() dr = m ExecuteReader()         表B范例中 我建立了一个Oracle连接和使用了一个存储程序作为命令 对比表A和表B 我们可以注意到命令类型必须设置为StoredProcedure 缺省情况下是文本 这对SQL的执行是非常有好处的 一旦命令和连接建立起来 必须添加一个输出参数来接收从存储程序中返回的指针 添加OracleParameter对象的过程需要类型(如指针)和名字上的匹配 可能的设置包括 Input Output InputOutput or ReturnValue 在这个范例中 指针接受了存储程序的输出 所以我把它的Direction设置为Output 最后 我打开了OracleDataReader以获得命令的结果     存储程序的数据传递  存储程序通常会接受一个或多个输出数据 这些数据用于控制程序的结果 例如 你不必需要从数据库返回每一个记录 相反 你只需返回一个与输出结果相匹配的记录     OracleParameter对象提供了这样的功能 表C演示了使用一个OracleParameter对象生成一个输入参数的方法 这里我建立一个参数的Direction属性为Input OracleType enum定义了所有的Oracle数据类型 比如char byte DateTime Float Number等等     微小的问题也会导致严重错误的产生  很多开发人员都已经习惯了数据库系统的程序开发 但是 从一个系统向另一个系统的转换会引起很多的麻烦 你必须清楚地理解各个数据库系统 这样才能更好地编写源代码 SQL服务器程序与Oracle之间的主要区别在于从存储程序的不同返回方式 使用Oracle指针与使用OracleParameter一样很方便 cha138/Article/program/Oracle/201311/18268

相关参考

知识大全 ADO.NET访问Oracle 9i存储过程(下)

ADO.NET访问Oracle9i存储过程(下)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 ADO.NET访问Oracle 9i存储过程(上)

ADO.NET访问Oracle9i存储过程(上)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 ADO.NET访问Oracle 9i存储过程(上)[1]

ADO.NET访问Oracle9i存储过程(上)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 ADO.NET访问Oracle 9i存储过程(上)[4]

ADO.NET访问Oracle9i存储过程(上)[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 ADO.NET访问Oracle 9i存储过程(上)[8]

ADO.NET访问Oracle9i存储过程(上)[8]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 ADO.NET访问Oracle 9i存储过程(上)[5]

ADO.NET访问Oracle9i存储过程(上)[5]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 ADO.NET访问Oracle 9i存储过程(上)[6]

ADO.NET访问Oracle9i存储过程(上)[6]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 ADO.NET访问Oracle 9i存储过程(上)[7]

ADO.NET访问Oracle9i存储过程(上)[7]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 ADO.NET访问Oracle 9i存储过程(上)[2]

ADO.NET访问Oracle9i存储过程(上)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 ADO.NET访问Oracle 9i存储过程(上)[3]

ADO.NET访问Oracle9i存储过程(上)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧