首页 > 解决方案 > 我有一个 PL/SQL 代码,但我不知道它的作用是什么?

问题描述

谁能逐行解释我的代码是做什么的?它是一个 PL/SQL 代码。 数据库图表如下所示 在此处输入图像描述

DECLARE
    a NUMBER;
    FUNCTION f_avg( p_man_id EMPLOYEES.MANAGER_ID%TYPE)
    RETURN NUMBER IS v_val NUMBER(8,1);
    b NUMBER;

BEGIN
    SELECT AVG(salary), COUNT(salary) into v_val, b FROM EMPLOYEES WHERE MANAGER_ID = p_man_id;
    IF  b=0
    THEN v_val := -1;
    END IF;
    RETURN v_val;
    END f_avg;

BEGIN
    a := f_avg(101);
    IF a < 0
    THEN DBMS_OUTPUT.PUT_LINE('No data found');
    ELSE DBMS_OUTPUT.PUT_LINE(a);
    END IF;
END; 

标签: sqloracleplsql

解决方案


函数f_avg计算经理为 的员工的平均工资p_man_id

  • 如果没有经理是 的雇员,则p_man_id函数返回 -1
  • 否则,它返回平均工资

匿名PL/SQL块的主要部分调用函数并101传入p_man_id显示

  • 如果该经理没有员工(即函数返回-1) ,则“未找到数据”
  • 平均工资(如果存在)

推荐阅读