调用pl sql函数问题

时间:2016-10-10 13:51:26

标签: sql oracle function

大家好我今天刚刚被告知这个网站,我可以使用一些帮助。 我已经阅读了规则,我明白我正在做什么代码明智我们刚开始Pl sql上周之前我只做了基本的sql。但是现在我停止调用我所做的功能:/我觉得很傻。这是一个相当直接的功能,我确信这是正确的,因为我的sql老师说,它看起来很好看一眼'但她没有告诉我如何调用这些功能,我真的想知道它是否有效。

我知道如何用dbms.out调用基本的sql和函数以及pl sql但是我在这里画一个空白,我记得她说在select中使用 1 而不是employee_no只有两行请打电话,请有人告诉我如何打电话给我。我也附上了ERD。

(a)计算并返回给定员工所处理的不同任务类型的总数。

SHOW ERRORS

CREATE OR REPLACE FUNCTION task_types(eno employee.employee_no%TYPE)
  RETURN NUMBER IS

  task_var task.task_type_no%TYPE;


  BEGIN
    SELECT COUNT(DISTINCT t.task_type_no)
    INTO task_var
    FROM employee e, task t, assignment a
    WHERE e.employee_no = a.employee_no
          AND a.task_id = t.task_id
          AND e.employee_no = eno;

    RETURN task_var;

  END;

实体 - 关系图:

the ERD

谢谢:)

2 个答案:

答案 0 :(得分:3)

您可以使用SQL中的函数

select task_types(e.employee_no) as task_types
from employee e;

或者,如果您知道特定的员工编号

select task_types(1) 
from dual;

或者在plsql中

begin
   dbms_output.put_line(task_types(1));
end;
/

答案 1 :(得分:0)

select task_types(your_employee_id) from dual;

由于your_employee_id使用您在帖子中提到的任何现有ID或1。