使用ADO.NET访问Oracle 9i存储过程(上)

豆豆网   技术应用频道   2007年05月13日  【字号: 收藏本文

本文详细介绍使用ADO.NET访问Oracle 9i存储过程(上)

  Oracle 函数是计算并返回单个值的子程序。它们的结构类似于存储过程,不同之处在于它们总是具有必须返回值的 RETURN 子句。

  下面是一个返回指定员工的电子邮件的函数:

CREATE OR new FUNCTION GET_EMPLOYEE_EMAIL (
   p_employee_id NUMBER
)
RETURN VARCHAR2
IS p_email VARCHAR2(25);
BEGIN
   SELECT EMAIL INTO p_email FROM EMPLOYEES
   WHERE EMPLOYEE_ID = p_employee_id;
  
   RETURN p_email;
END GET_EMPLOYEE_EMAIL;

  执行函数的方式与执行存储过程的方式相同。可使用 ParameterDirection.ReturnValue 参数获得由函数返回的结果。以下代码显示了使用方法:

// create the connection
OracleConnection conn = new OracleConnection("Data Source=oracledb;
   User Id=UserID;Password=Password;");
  // create the command for the function
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "GET_EMPLOYEE_EMAIL";
cmd.CommandType = CommandType.StoredProcedure;
  // add the parameters, including the return parameter to retrieve
// the return value
cmd.Parameters.Add("p_employee_id", OracleType.Number).Value = 101;
cmd.Parameters.Add("p_email", OracleType.VarChar, 25).Direction =
   ParameterDirection.ReturnValue;
  // execute the function
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
  // output the result
Console.WriteLine("Email address is: " + cmd.Parameters["p_email"].Value);

  控制台输出显示了员工 101 的电子邮件地址。

责编:豆豆技术应用

正在加载评论...