【问题标题】:REPLACE procedure on oracle 12coracle 12c 上的 REPLACE 过程
【发布时间】:2021-04-22 19:33:38
【问题描述】:

如果有1个员工,选择员工姓名和工资1500时,在tMessage中插入员工姓名和工资金额。如果有 2 名或更多员工,请插入多行。如果没有员工,则在没有任何员工的情况下插入 tMessage。

create or REPLACE procedure temployees_i(
  v_aempname in tregions.aregid%type,
  v_aempsal number(3):=1500),
)
is 
BEGIN
  select lastname,salary from employees ;
EXCEPTION
  WHEN SALARY=v_aempsal THEN
    insert into tMessage values ('have qualified staff'|| lastname ||'of' salary);
  WHEN SALARY!=v_aempsal THEN
    insert into tMessage values ('There are no employees
  ');
END;

【问题讨论】:

  • 能否请您把问题问清楚并提供一些示例数据?
  • 选择工资为1500的员工,如果有1个员工则插入tMessage员工姓名+员工工资,如果有2个或更多员工则插入所有员工,如果没有,插入没有人

标签: sql oracle


【解决方案1】:

我想这就是你想要的。

   CREATE OR REPLACE PROCEDURE temployees_i( v_aempsal number := 1500 )
   IS 
     TYPE emprec IS RECORD (empname VARCHAR2(50), salary NUMBER(9,2));
     TYPE emp_tab IS TABLE OF emprec;
     
     empv emp_tab;
     BEGIN

      SELECT lastname, salary bulk COLLECT INTO empv from employees WHERE 
      SALARY = v_aempsal ;
      
        IF empv.count != 0 then
             FORALL i in 1..empv.COUNT 
                insert into tMessage values ('have qualified staff '|| 
                empv(i).empname ||'of ' ||empv(i).salary);
        ELSE
             INSERT INTO tMessage VALUES ('There are no employee');
        END IF;
      COMMIT;

END;

【讨论】:

    猜你喜欢
    • 2018-10-26
    • 2020-07-31
    • 1970-01-01
    • 2017-10-07
    • 2018-11-28
    • 1970-01-01
    • 2014-03-14
    • 2021-10-06
    • 1970-01-01
    相关资源
    最近更新 更多