首页 > 代码库 > Oracle在存储过程中如何返回结果集
Oracle在存储过程中如何返回结果集
Oracle和Sqlserver不一样的地方有很多。
个人最深的体会是存储过程返回结果集,在Sqlserver中直接select查询就行,Oracle就不行了。
这里,就用最简单的例子说明存储过程返回结果集的例子
CREATE OR REPLACE PROCEDURE 存储过程名( 字段名 in VARCHAR2, l_result OUT TYPES.RQ_REF_CURSOR -- 包里面方法名)isstr_sql varchar2(8000) := ‘‘; begin str_sql:=‘select * from tabelname where ID=‘||字段名;
open l_result for str_sql;
END Region_Linkage;
创建包(非必须)
CREATE OR REPLACE PACKAGE TYPES AS TYPE RQ_REF_CURSOR IS REF CURSOR;END;
创建包并非是必须的,将 REF CURSOR 直接加在存储过程的OUT关键字后面也可以
另外补充上C#中调用存储过程的通用方法
public DataTable InsertT_BUILDITEM(string REGION_ID) { DataSet ds = new DataSet(); try { string sql = "存储过程名"; OracleConnection con = this._sqlCon; OracleCommand cmd = new OracleCommand(sql, con); cmd.CommandType = CommandType.StoredProcedure; //申明是存储过程 cmd.Parameters.Add("传入参数名", OracleType.NVarChar).Value =http://www.mamicode.com/ REGION_ID; cmd.Parameters.Add("返回的游标名", OracleType.Cursor).Direction = ParameterDirection.Output; OracleDataAdapter ad = new OracleDataAdapter(cmd); ad.Fill(ds, "report_build"); } catch (Exception e) { throw e; } return ds.Tables[0]; }
相关文档
Oracle视频教程:http://oracle.so138.com/video
Oracle初级教程:http://www.cnblogs.com/linjiqin/category/349944.html
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。