将值从表传递到函数的Oracle视图?

将值从表传递到函数的Oracle视图?,oracle,function,Oracle,Function,我正在尝试创建一个Oracle视图,该视图将显示两列: 员工ID、部门ID 要获取部门id,我需要将员工id传递到我今天使用的函数中: select * from TABLE(user.fn_department('dept',employee_id) 这将只为我传递给它的员工id提供一个部门id列表 我可以从employee表中获取唯一员工的列表 如何组合这两个输出 谢谢大家! 您可以使用 CREATE OR REPLACE VIEW USER_DEPT_VIEW AS SELECT e

我正在尝试创建一个Oracle视图,该视图将显示两列:

员工ID、部门ID

要获取部门id,我需要将员工id传递到我今天使用的函数中:

select * from TABLE(user.fn_department('dept',employee_id)
这将只为我传递给它的员工id提供一个部门id列表

我可以从employee表中获取唯一员工的列表

如何组合这两个输出


谢谢大家!

您可以使用

CREATE OR REPLACE VIEW USER_DEPT_VIEW AS
  SELECT e.EMPLOYEE_ID,
         USER.FN_DEPARTMENT('dept', e.EMPLOYEE_ID) AS DEPARTMENT_ID
    FROM EMPLOYEE e;
然后您可以将其用作

SELECT *
  FROM USER_dEPT_VIEW
  WHERE EMPLOYEE_ID = 1234
祝你好运。

试试这个

SELECT b.employee_id, a.department_id
  FROM employees b, table(user.fn_department('dept',b.employee_id)) a
 ORDER by b.employee_id

请回答您的问题,并根据这些数据添加一些内容和预期输出。请您的问题-不要在注释中发布代码或附加信息。返回单行的表函数效率不高。我建议您绕过/避免该功能。只需将函数中包含的逻辑用作视图。谢谢Bob!!这是难以置信的接近。我现在遇到的唯一问题是,数据在Oracle中以单个单元格“”的形式返回,而不是以值的形式返回。这可能是因为一些员工有多个部门吗?如果是这样的话,是否显示实际的员工ID/部门ID,即使它有多行?用户.FN部门的返回类型是什么?