oracle9i中创建包如下:
包规范:
SQL> create or replace
  2  package bjmc_pkg as
  3    procedure print_bjmc(p_bjh char);
  4  end bjmc_pkg;
  5  /
包主体:
SQL> l
  1  create or replace
  2  package body bjmc_pkg as
  3
  4    procedure print_bjmc(p_bjh char) is
  5      l_bjmc bjxx.bjxx_bjmc%type;
  6    begin
  7      select bjxx_bjmc
  8        into l_bjmc
  9        from bjxx
 10       where bjxx_bjh = p_bjh;
 11      dbms_output.put_line(l_bjmc);
 12    exception
 13      when NO_DATA_FOUND then
 14      dbms_output.put_line('班级号不存在!');
 15    end print_bjmc;
 16* end bjmc_pkg;
SQL> /
经测试,包没问题。我在.net下调用如下:
[WebMethod]
public DataSet SQLDB(string str_bjh)
{
try
{
OracleConnection CS = new 
OracleConnection("Password = qixiang;User ID = qixiang;"
//+ "Initial Catalog = xsgl_en;"
+ "Data Source = wsclient");
OracleCommand selectCMD = new OracleCommand("bjmc_pkg.print_bjmc", CS);
selectCMD.CommandType = CommandType.StoredProcedure; OracleParameter myParm = new OracleParameter("p_bjh", OracleType.Char,8);
myParm.Direction = System.Data.ParameterDirection.Input;
myParm.Value = str_bjh;
selectCMD.Parameters.Add(myParm);
OracleDataAdapter myCommand = new OracleDataAdapter();
myCommand.SelectCommand = selectCMD;
DataSet myDataSet = new DataSet();
myCommand.Fill(myDataSet, "Results");
return myDataSet;
}
catch(Exception ex)
{
return DataError(ex);
}
}但没有出现预期结果,也不报错!
望高手指教。我很着急!!