文档详情

PLSQL函数参数.doc

发布:2017-12-08约1万字共12页下载文档
文本预览下载声明
游标for循环 --查询所有员工编号,姓名,工资 declare cursor emp_cursor is select * from employees; begin for e IN emp_cursor loop dbms_output.put_line(编号:||e.employee_id||姓名:||e.last_name||工资:||e.salary); end loop; end; --查询所有员工编号,姓名,工资(参数) declare cursor emp_cursor(p_dept_id employees.department_id%type) is select * from employees where department_id=p_dept_id; begin for e in emp_cursor(90) loop dbms_output.put_line(编号:||e.employee_id||姓名:||e.last_name||工资:||e.salary); end loop; end; declare begin for e in(select * from employees where department_id=60) loop dbms_output.put_line(编号:|| e.employee_id ||姓名||e.last_name||工资||e.salary); end loop; end; --隐式游标 --用户输入一个任意的部门编号,更新这个部门员工的工资 如果有员工的工资被更新,输出‘更新成功’,有多少个员工被更新,如果没有,输出‘部门不存在’ v_deptid number:=input; begin update employees set salary = salary+1 where department_id=v_deptid; if sql%found then dbms_output.put_line(更新成功,有 || SQL%ROWCOUNT ||个员工被更新); else dbms_output.put_line(部门不存在); end if; commit; end; --动态游标 --用户输入一个字母,输入E,查的是员工姓名,输入D,查的是部门名称 select count(employee_id) from employees 函数和过程 ORACLE 提供可以把PL/SQL 程序存储在数据库中,并可以在任何地方来运行它。这样就叫存储过程或函数。过程和函数统称为PL/SQL子程序,他们是被命名的PL/SQL块,均存储在数据库中,并通过输入、输出参数或输入/输出参数与其调用者交换信息。过程和函数的唯一区别是函数总向调用者返回数据,而过程则不返回数据。 创建函数 创建函数的语法如下: CREATE [OR REPLACE] FUNCTION function_name [ (argment [ { IN | OUT | IN OUT } ] Type , argment [ { IN | OUT | IN OUT } ] Type ] RETURN return_type { IS | AS } 类型.变量的说明 BEGIN FUNCTION_body EXCEPTION 其它语句 END; CREATE OR REPLACE FUNCTION get_salary( Dept_no NUMBER, Emp_count OUT NUMBER) RETURN NUMBER IS V_sum NUMBER; BEGIN SELECT SUM(sal), count(*) INTO V_sum, emp_count FROM emp WHERE deptno=dept_no; RETURN v_sum; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE(你需要的数据不存在!); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(SQLCODE||---||SQLERRM); END get_salary; 调用函数方法 函数声明时所定义的参数称为形式参数,应用程序调用时为函数传递的参数称为实际参数。应用程序在调用函数时,可以使用以下三种方法向函数传递参数: 第一种参数传递格式称为位置表示法,格式为: argument_value
显示全部
相似文档