13-14-2 第三篇 存储过程上机试验课件.pptVIP

  • 5
  • 0
  • 约2.78千字
  • 约 45页
  • 2017-08-10 发布于河南
  • 举报

13-14-2 第三篇 存储过程上机试验课件.ppt

13-14-2 第三篇 存储过程上机试验课件

第三篇 存储过程和函数;第三篇 存储过程和触发器;第三篇 存储过程procedure(p174);存储过程的创建;参数模式 IN参数类型 OUT参数类型 IN OUT参数类型 ;参数模式 IN (默认参数类型):表示此参数接受过程外传来的值。 当过程被调用时,实参值被传递给过程。 在过程内,该参数起常数作用,可读不可写。 调用结束,实参值不变。 主调程序中: p1(v_1,v_2); ; OUT参数:表示此参数将在过程中被赋值,并传递到过程体外。 当过程被调用时,实参事先定义,参数传递时实参值被忽略。 在过程内,该参数起未初始化的变量作用,值为NULL。 过程内,该参数可读可写。 调用结束,形参值赋给实参值。 主调程序中: p1(v_1,v_2); 注意: v2需要在主调程序中事先declare ;IN OUT参数模式表示此参数同时具备IN和OUT参数型的特性。 当过程被调用时,实参值被传递给过程。 在过程内,该参数起已初始化变量作用 过程内,该参数可读可写。调用结束,形参赋给实参。 ; 例1:创建一存储过程update_emp,该过程用于将emp表中empno为7876的员工姓名修改为candy create or replace procedure update_emp as begin update scott.emp set ename=candy where empno=7876; end update_emp;;过程创建好后,其过程体中的内容并没有被执行,仅仅是被编译,调用该过程才可执行它。 调用过程有两种方式 Sql*plus方式: 程序块方式 ;存储过程的调用p174;存储过程的创建和执行;第三篇 存储过程的创建和执行;执行procedure count_grade declare person_n number(3); begin count_grade(计算机,person_n); dbms_output.put_line(person_n); end; 注意:person_n参数模式为out,需要先定义,IN 参数时需要赋初值 ;第三篇 存储过程的创建和执行;6.1.1 存储过程的创建和执行;对于存储过程,如果希望返回多个值,可以使用OUT或IN OUT模式参数来实现。 如果需要返回一个值可以通过函数调用实现。 ;例 5: 创建一个存储过程,以部门号为参数,返回该部门的人数和最高工资。 CREATE OR REPLACE PROCEDURE return_deptinfo( p_deptno IN scott.emp.deptno%TYPE, p_avgsal OUT scott.emp.sal%TYPE, p_count OUT scott.emp.sal%TYPE) AS;BEGIN SELECT avg(sal),count(*) INTO p_avgsal,p_count FROM scott.emp WHERE deptno=p_deptno; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE(The department don’t exists!); END return_deptinfo; ; 存储过程的执行 declare p_avgsal scott.emp.sal%TYPE; p_count scott.emp.sal%TYPE; begin return_deptinfo(20,p_avgsal,p_count); dbms_output.put_line(p_avgsal|| ||p_count); end; ; 补充:创建一个存储过程,以部门号为该存储过程的in类型参数,查询该部门的平均工资,并输出该部门中比平均工资高的员工号、员工名。(for 循环遍历 游标) CREATE OR REPLACE PROCEDURE show_emp( p_deptno emp.deptno%TYPE) AS v_sal emp.sal%TYPE; BEGIN SELECT avg(sal) INTO v_sal FROM emp WHERE deptno=p_deptno; DBMS_OUTPUT.PUT_LINE(p_deptno|| ||average salary is:||v_sal); FOR v_emp IN (SELECT * FROM emp WHERE deptno=p_deptno AND salv_sal) LOOP DBMS_OUTPUT.PUT_

文档评论(0)

1亿VIP精品文档

相关文档