CREATE OR REPLACE PROCEDURE "MAPINFO"."INPUT_VALUE" (name in
varchar2)
as
begin
insert into EMPLOYEE values(name,20);
end;
select t.* from employee t where rownum between 1 and 3
程序包体并返回datareador
程序包
CREATE OR REPLACE PACKAGE "NMS_GIS"."NMS_GIS_TEST" as
TYPE c_CURSOR IS REF CURSOR;
PROCEDURE OPEN_TABLE_CURSOR (c_Result OUT c_CURSOR,
p_Out OUT VARCHAR2);
end;
程序包体
CREATE OR REPLACE PACKAGE BODY "NMS_GIS"."NMS_GIS_TEST" is
PROCEDURE OPEN_TABLE_CURSOR(
c_Result OUT c_CURSOR, --结果集
p_Out OUT VARCHAR2) --错误信息
IS
BEGIN
OPEN c_Result FOR
SELECT * from TEST;
EXCEPTION
WHEN OTHERS THEN
p_Out := SQLERRM; --存储过程错误
END;
end NMS_GIS_TEST;
调用时
OracleCommand cmd = Conn().CreateCommand(); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "nms_gis.NMS_GIS_TEST.OPEN_TABLE_CURSOR"; cmd.Parameters.Add("c_Result", OracleType.Cursor); cmd.Parameters.Add("p_Out", OracleType.VarChar, 50); cmd.Parameters[0].Direction = ParameterDirection.Output; cmd.Parameters[1].Direction = ParameterDirection.Output; OracleDataAdapter da = new OracleDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); MessageBox.Show(ds.Tables[0].Rows.Count.ToString());