zoukankan      html  css  js  c++  java
  • 进程 触发器

    1.进程是相当于一个后台运行,赋予一个值,他能给出相关的结果。

      --创建一个过程 "给你一个员工号 你给我返回他的年薪"

        create or replace procedure  nianxin(eno in number, psal out number)        --'nianxin'是进程的名字 eno输入数据  in 代表输入值  number 类型 psal输出数据

        as                                               ---进程之中不用   declare

         csal emp.sal%type;                  

         ccomm emp.comm%type;

        begin

          select sal ,comm into csal,ccomm from emp where empno=eno;

          psal :=sal *12 + nvl( ccomm,0);                --注意 nvl 的作用

        end;

        /

        --------------运用进程

       declare

          psal number;

          begin

          nianxin(7566,psal);               ------psal是返回值, 7566是赋予值

          dbms_output.put_line(psal);

          end;

          /

    ------------- ---------------触发器: 建立一个触发器,当发现定义的操作时,给出 回应

         建立:周四 周天 9:00-18:00 时间段不能 insert 操作

    create or replace trigger empinert   ----------------trigger 关键字

     before                      -----------------before  关键字 (before  ,  after )之前 之后

    insert                         -------------------触发操作

    on emp                         ------------------------基于哪个表

    begin

    if to_char(sysdate,'day') = '星期四' or to_char(sysdate,'day') ='星期天' or to_char(sysdate,'hh24') not between 9 and 18 then raise_application_error(-20003,'不能在非上班时间做插入操作');          -----to_char 将格式转换 只取 一部分

    end if;

    end;

    /

    -------------------监控每个部门不能超过 5 个人

    create or replace trigger empinsert

    before

    insert/delete/update (of) 列名

    on emp

    for each row (when)条件

    declare

          pnumber number;

    begin

         select count(*) into pnumber from emp where deptno = :new.deptno;    -------------:new.deptno   来源于更新后数据下的部门号

         if pnumber >= 5 then raise_application_error(-20002,'每个部门只能有5各员工');

         end if;

    end;

    /

         

  • 相关阅读:
    sql评估已过期
    解决电脑弹窗
    清除电脑缓存,解决电脑卡
    vant小程序实现表单提交(时间组件,弹出层组件)
    jquery每两秒执行函数
    git pull遇到错误:error: Your local changes to the following files would be overwritten by merge:
    阿里云服务器http转https
    微信小程序错误码40029
    1366:Incorrect string value: 'xE4xBBx8AxE5xA4xA9' for column 'content' at row 1 [ SQL语句 ] :
    每日一题 为了工作 2020 0308 第六题
  • 原文地址:https://www.cnblogs.com/savepoint/p/5316323.html
Copyright © 2011-2022 走看看