sql中的标识符无效

sql中的标识符无效,sql,oracle,Sql,Oracle,我使用self-join编写了这样的查询,因为EmployeeID应该同时是主键和外键——是这样吗?sql开发人员告诉我这是什么意思 SQL错误:ORA-00904:“E”。“EMPLOYEESUPERVISOR”:标识符无效 90400000-%s:无效标识符 插入查询中存在一些小问题 您将EmployeeID声明为varchar2,但没有将ID值括在“中”,因此您基本上是在尝试插入数学运算107-55-789的结果,即-737 您没有在insert语句中指定字段名称,因此必须给出每个字段的值

我使用self-join编写了这样的查询,因为
EmployeeID
应该同时是
主键
外键
——是这样吗?sql开发人员告诉我这是什么意思

SQL错误:ORA-00904:“E”。“EMPLOYEESUPERVISOR”:标识符无效 90400000-%s:无效标识符


插入查询中存在一些小问题

  • 您将EmployeeID声明为varchar2,但没有将ID值括在“中”,因此您基本上是在尝试插入数学运算107-55-789的结果,即-737

  • 您没有在insert语句中指定字段名称,因此必须给出每个字段的值。您有3个字段,但在每个语句中提供2个值

  • 因此,您可以使用以下insert语句进行测试:

    insert into Employees values ('107-55-789','Stan Getz', null);
    insert into Employees values ('123-44-347','Jim Jason', '123-44-347');
    insert into Employees values ('547-33-243','Bill Blass', null);
    insert into Employees values ('678-44-546','Robert Lewis', '123-44-347');
    
    看看这把甲骨文小提琴,看看结果:


    您的代码毫无意义,无法按编写的方式运行。它说EmployeeSupVersion是未知列。您是否试图在EmployeeSupersor上创建引用员工id的外键?如果EmployeeSupervisor是员工的id,则外键应为
    (EmployeeSupervisor)引用员工(EmployeeID)
    。无论如何,错误似乎与此无关,请检查表中是否确实有
    EmployeeSupervisor
    字段,可能是缺少或写得不好。最后,不要使用
    WHERE
    连接表,请使用
    join
    insert into Employees values ('107-55-789','Stan Getz', null);
    insert into Employees values ('123-44-347','Jim Jason', '123-44-347');
    insert into Employees values ('547-33-243','Bill Blass', null);
    insert into Employees values ('678-44-546','Robert Lewis', '123-44-347');