zoukankan      html  css  js  c++  java
  • ado.net access oracle dataset via store procedure

    使用存储过程返回结果集,并绑定到ado.net对象中在sql server里面是非常直观的。

       1: create procedure GetAllRecords
       2: as
       3: select * from dept;

    存储过程返回一个结果集,然后通过SqlDataAdapter绑定给DataSet。

    但是在Oracle里面返回结果集存储过程是不可以这样写的,返回的结果集要通过游标来完成的。

    首先创建一个包,新建一个应用游标类型

       1: create or replace package cust_types is
       2:   type ref_cursor is ref cursor;
       3: end cust_types;

    然后再使用该类型声明一个返回参数

       1: create or replace procedure GetDept(all_rec out cust_types.ref_cursor) is
       2: begin
       3:   open all_rec for select * from dept;
       4: end GetDept;

    在.net中调用是要这样写:

       1: var connStr = ConfigurationManager.ConnectionStrings["ora"].ConnectionString;
       2:  
       3: using (OracleConnection conn = new OracleConnection())
       4: {
       5:     conn.ConnectionString = connStr;
       6:     conn.Open();
       7:     var cmd = conn.CreateCommand();
       8:     cmd.CommandText = "GetDept";
       9:     cmd.CommandType = CommandType.StoredProcedure;
      10:     cmd.Parameters.Add(new OracleParameter("All_Rec", OracleDbType.RefCursor){Direction = ParameterDirection.Output});
      11:     var adapter = new OracleDataAdapter(cmd);
      12:     var ds = new DataSet();
      13:     adapter.Fill(ds);
      14: }
      15:  
      16:  

    这样才能使用存储过程返回结果集。

  • 相关阅读:
    设计师必须掌握的美术基础
    UI设计初学者如何避免走弯路?
    2018年最好的医疗网站设计及配色赏析
    一名优秀的UI设计师应该具备哪些条件?
    超实用的网页页脚设计小技巧
    关于文案排版的一些基本技巧
    几个简单又实用的配色技巧
    412. Fizz Buzz
    409. Longest Palindrome
    408. Valid Word Abbreviation
  • 原文地址:https://www.cnblogs.com/philzhou/p/3337484.html
Copyright © 2011-2022 走看看