尝试创建视图,但出现错误,指出ORA-00904:“ JOB”:无效的标识符

时间:2018-12-01 15:30:58

标签: sql oracle

CREATE VIEW emp_view AS 
SELECT empno AS "Employee Number", ename AS "Employee Name", NVL(sal * 26 + comm * 12 ,0) as "Gross Salary", job , loc as "Location" 
FROM dept;

创建一个称为emp_view的视图,该视图是emp表和dept表的联接。该视图包含一个SQL查询,该查询显示empno,ename,sal * 26 + comm * 12(请不要忘记COMM上的NVL()函数),作业和dept表中的loc。

此视图适用于人力资源部门,将包括以下几列:

Empno将在视图中显示为“雇员编号”

Ename将显示为“雇员姓名”

工作,您可以以工作身份离开

Loc将在视图中显示为“位置”

2 个答案:

答案 0 :(得分:0)

错误消息很简单,表DPT中没有名为JOB的列。

在问题中,提到:

  

emp_view是emp表和dept表的联接

所以我的猜测是JOB列实际上来自EMP表。因此,在视图的定义中,您应该将DEPT与EMP结合使用,而不是仅使用DEPT。

答案 1 :(得分:0)

如先前答案中所述,您似乎正在尝试从emp和dept表之间的联接创建视图。错误消息明确指出,在视图中使用的“部门”表中不存在视图中使用的列。如果您可以发布emp表的结构,这将有助于给您正确的答案。

但是根据您的示例中提供的有限信息,您可能希望尝试将两个表连接起来,例如- 从emp INNER JOIN部门的emp.deptID = dept.deptID