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;

     

     

     

  • 相关阅读:
    查看mysql数据库容量大小
    通过shell监控网页是否正常,然后促发邮件告警
    Linux shell标准输入,标准输出,错误输出
    linux资源管理命令之-----vmstat
    linux基础命令--lsof
    squid之------ACL控制
    JDK的二进制安装
    重置grafana密码
    CentOS 7添加开机启动服务脚本
    LVM逻辑卷理论及配置
  • 原文地址:https://www.cnblogs.com/-maji/p/7255923.html
Copyright © 2011-2022 走看看