方法一
Oracle 包创建一个公用的游标,方便多次引用
CREATE OR REPLACE PACKAGE PKG_TEST IS
TYPE cur_OUT IS REF CURSOR;
END;
oracle 创建一个存储过程
create or replace procedure pub_phone_selectAll(cur_OUT_g OUT pkg_test.cur_OUT,cur_OUT_f OUT pkg_test.cur_OUT) AS
begin
OPEN cur_OUT_g FOR SELECT * FROM sdzy_tasklog st;
OPEN cur_OUT_f FOR SELECT * FROM entry_agentmonitor st;
end pub_phone_selectAll;
C# 语句 以下为自定义的游标可返回多个数据集
string strcomm = "pub_phone_selectAll";
DataSet ds = new DataSet();
Database db = DatabaseFactory.CreateDatabase();
DbCommand dbCommand = db.GetStoredProcCommand(strcomm);
OracleParameter cursorParam = new OracleParameter("cur_OUT_g", OracleType.Cursor);
cursorParam.Direction = ParameterDirection.Output;
dbCommand.Parameters.Add(cursorParam);
OracleParameter cursorParam1 = new OracleParameter("cur_OUT_f", OracleType.Cursor);
cursorParam1.Direction = ParameterDirection.Output;
dbCommand.Parameters.Add(cursorParam1);
ds = db.ExecuteDataSet(dbCommand);
方法二
Oracle 包创建一个公用的游标,方便多次引用
CREATE OR REPLACE PACKAGE PKG_TEST IS
TYPE cur_OUT IS REF CURSOR;
END;
oracle 创建一个存储过程
create or replace procedure pub_phone_selectAll(cur_OUT OUT pkg_test.cur_OUT) AS
begin
OPEN cur_OUT FOR SELECT * FROM sdzy_tasklog st;
end pub_phone_selectAll;
C# 语句返回一个数据集
string strcomm = "pub_phone_selectAll";
DataSet ds = new DataSet();
Database db = DatabaseFactory.CreateDatabase();
DbCommand dbCommand = db.GetStoredProcCommand(strcomm);
ds = db.ExecuteDataSet(dbCommand);