create or replace Packages SysBasice As Tyoe T_cursor Is Ref Cursor; end DysBasice;create or replace procedure Get_brand( c_cursor OUT SysBasice.T_cursor ) IS begin open c_cursor for select brandid,brandname from brand; end Get_brand;
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;前台怎么做要看具体的语言了,反正就是接收这个动态cursor.
ASP的话就中执行select * from table_name,再搞个循环就可以了
存储过程ls的都给出了,就看lz用什么语言调用了,如果没有调用过可以查一下相关语言的调用过程语句。
create or replace procedure sp_test( rst out sys_refcursor) is begin open rst for select '1' from dual; end; 添加引用System.Data.OracleClientusing 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());
Tyoe T_cursor Is Ref Cursor;
end DysBasice;create or replace procedure Get_brand(
c_cursor OUT SysBasice.T_cursor
)
IS
begin
open c_cursor for
select brandid,brandname
from brand;
end Get_brand;
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;前台怎么做要看具体的语言了,反正就是接收这个动态cursor.
begin
open rst for select '1' from dual;
end;
添加引用System.Data.OracleClientusing 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());