zoukankan      html  css  js  c++  java
  • oracle存储过程

    在 ORACLE SERVER上建立存储过程,可以被多个应用程序调用,可以向存储过程传递参数,也可以向存储过程传回参数 

    创建存储过程语法 :
    CREATE [OR REPLACE] PROCEDURE Procedure_name
    [ (argment [ { IN | OUT | IN OUT } ] Type,
    argment [ { IN | OUT | IN OUT } ] Type ]
    { IS | AS }
    <类型.变量的说明>
    BEGIN
    <执行部分>
    EXCEPTION
    <可选的异常错误处理程序>
    END;


    例 :

     1 CREATE OR REPLACE PROCEDURE DelEmp
     2   (v_empno IN emp.empno%TYPE) 
     3 AS
     4   No_result EXCEPTION;
     5 BEGIN
     6   DELETE FROM emp WHERE empno=v_empno;
     7   IF SQL%NOTFOUND THEN
     8     RAISE no_result;
     9 END IF;
    10   DBMS_OUTPUT.PUT_LINE('编码为'||v_empno||'的员工已被除名!');
    11 EXCEPTION
    12   WHEN no_result THEN 
    13   DBMS_OUTPUT.PUT_LINE('你需要的数据不存在!');
    14   WHEN OTHERS THEN
    15   DBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM);
    16 END DelEmp;


    调用存储过程
    存储过程建立完成后,只要通过授权,用户就可以在SQLPLUS 、ORACLE开发工具或第三方开发工具中来调用运行。
    ORACLE 使用EXECUTE 语句来实现对存储过程的调用:
    EXEC[UTE] Procedure_name( parameter1, parameter2…)


    例:

    CREATE OR REPLACE PROCEDURE proc_demo
      (Dept_no NUMBER DEFAULT 10 , Sal_sum OUT NUMBER,
      Emp_count OUT NUMBER)
    IS
    BEGIN
      SELECT SUM(sal), COUNT(*) INTO sal_sum, emp_count 
      FROM emp WHERE deptno=dept_no;
    EXCEPTION
      WHEN NO_DATA_FOUND THEN 
      DBMS_OUTPUT.PUT_LINE('你需要的数据不存在!');
      WHEN OTHERS THEN 
      DBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM);
    END proc_demo; 


    调用方法:

    DECLARE
      V_num NUMBER;
      V_sum NUMBER(8, 2);
    BEGIN
      Proc_demo(30, v_sum, v_num);
      DBMS_OUTPUT.PUT_LINE('30号部门工资总和:'||v_sum||',人数:'||v_num);
      Proc_demo(sal_sum => v_sum, emp_count => v_num);
      DBMS_OUTPUT.PUT_LINE('10号部门工资总和:'||v_sum||',人数:'||v_num);
    END;


    删除过程
    可以使用DROP语句删除过程:
    DROP PROCEDURE proceduer_name;

     

     

     

  • 相关阅读:
    第 16 章 CSS 盒模型[下]
    第 16 章 CSS 盒模型[上]
    第 15 章 CSS 文本样式[下]
    第 15 章 CSS 文本样式[上]
    第 14 章 CSS 颜色与度量单位
    第 13 章 CSS 选择器[上]
    第 12 章 CSS 入门
    关于springboot上传文件报错:The temporary upload location ***is not valid
    Java Enum枚举 遍历判断 四种方式(包括 Lambda 表达式过滤)
    git命令-切换分支
  • 原文地址:https://www.cnblogs.com/-maji/p/7255923.html
Copyright © 2011-2022 走看看