17,134
社区成员
发帖
与我相关
我的任务
分享create or replace procedure sp_test( rst out sys_refcursor) is
begin
open rst for select '1' from dual;
end;
添加引用System.Data.OracleClient
using using System.Data.OracleClient;
OracleConnection conn = new OracleConnection("Data Source=orcl;User Id=system;Password=manager;");
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "sp_test";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add( new OracleParameter("rst",OracleType.Cursor));
cmd.Parameters["rst"].Direction = ParameterDirection.Output;
OracleDataAdapter da = new OracleDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
MessageBox.Show(ds.Tables[0].Rows.Count.ToString()); PL/SQL 代码:
CREATE OR REPLACE PACKAGE "PKG_TEST" AS
TYPE myrcType IS REF CURSOR;
FUNCTION get(strbarcode VARCHAR) RETURN myrcType;
END pkg_test;
CREATE OR REPLACE PACKAGE BODY "PKG_TEST" AS
FUNCTION get(strbarcode IN VARCHAR) RETURN myrcType IS
rc myrcType;
BEGIN
OPEN rc FOR strbarcode;
RETURN rc;
END get;
END pkg_test;