数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

ADO.NET访问Oracle 9i存储过程(上)[5]


发布日期:2023年04月26日
 
ADO.NET访问Oracle 9i存储过程(上)[5]

如果您尚未修改默认的 HR 安装则 JOB_HISTORY 表中员工 的记录被删除并且向控制台输出以下内容

Rows affected:

访问返回值

RETURN 语句立即将控制从存储过程返回到调用程序Oracle 存储过程中的 RETURN 语句无法像在 TSQL 中那样返回值

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

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

CREATE OR new FUNCTION GET_EMPLOYEE_EMAIL (

p_employee_id NUMBER

)

RETURN VARCHAR

IS p_email VARCHAR();

BEGIN

SELECT EMAIL INTO p_email FROM EMPLOYEES

WHERE EMPLOYEE_ID = p_employee_id;

RETURN p_email;

END GET_EMPLOYEE_EMAIL;

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

// 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();

cmdConnection = conn;

cmdCommandText = GET_EMPLOYEE_EMAIL;

cmdCommandType = CommandTypeStoredProcedure;

// add the parameters including the return parameter to retrieve

// the return value

cmdParametersAdd(p_employee_id OracleTypeNumber)Value = ;

cmdParametersAdd(p_email OracleTypeVarChar )Direction =

ParameterDirectionReturnValue;

// execute the function

connOpen();

cmdExecuteNonQuery();

connClose();

// output the result

ConsoleWriteLine(Email address is: + cmdParameters[p_email]Value);

[] [] [] [] [] [] [] []

               

上一篇:ADO.NET访问Oracle 9i存储过程(上)[8]

下一篇:ADO.NET访问Oracle 9i存储过程(上)[6]