Oracle 获取ORA-00918:列在10g上定义模糊错误,但在11g中有效

Oracle 获取ORA-00918:列在10g上定义模糊错误,但在11g中有效,oracle,oracle11g,oracle10g,Oracle,Oracle11g,Oracle10g,这是我为所有表定义的查询表别名 以下10g列是否需要列别名 select distinct p.id, format_name(p.fname, p.lname,'local000000000000001') full_name, p.username, p.person_no, jobinfo.name, company.name2, company.name, dom.name, per_mgr.username

这是我为所有表定义的查询表别名

以下10g列是否需要列别名

select distinct p.id, 
    format_name(p.fname, p.lname,'local000000000000001') full_name, 
    p.username, 
    p.person_no, 
    jobinfo.name, 
    company.name2, 
    company.name, 
    dom.name, 
    per_mgr.username, 
    a.name 
from cmt_person p 
    inner join fgt_locale loc on loc.id='local000000000000001' 
    left outer join tpt_company company on p.company_id = company.id 
    left outer join tpt_ext_job_type jobinfo on p.jobtype_id = jobinfo.id AND jobinfo.locale_id=loc.id 
    inner join fgt_domain dom on p.split = dom.id 
    left outer join fgt_gen gen on gen.id1 = p.id and gen.TYPE = 301 and gen.str2 IS NULL 
    left outer join fgt_ext_admin_managed_lov a on a.id = gen.id2 and a.locale_id = loc.id 
    left outer join cmt_person per_mgr on per_mgr.id = p.manager_id 
    inner join fgt_address a on a.owner_id = p.id  
where   (   p.terminated_on is null or p.terminated_on >= sysdate) 
    and(   (p.type = 100 and p.split in ('domin000000000000007','domin000000000001107','domin000000000001108','domin000000000001109','domin000000000001104','domin000000000001103','domin000000000001106','domin000000000001105','domin000000000000001','domin000000000001102','domin000000000001110')) 
    or   (p.type = 200 and p.split in ('domin000000000000007','domin000000000001107','domin000000000001108','domin000000000001109','domin000000000001104','domin000000000001103','domin000000000001106','domin000000000001105','domin000000000000001','domin000000000001102','domin000000000001110'))   ) 
    AND  1=1   
    AND lower(p.status) = lower('A')   
    AND lower(a.country) like lower('USA' || '%')   
    AND p.type in (decode('1','1',100,'2',200,'0',p.type))   
    AND p.manager_id in ('emplo000000000034578')  
ORDER BY 2,3,4,5,6,7,8,9,10

两个表共享相同的别名(“a”):
fgt\u ext\u admin\u managed\u lov
fgt\u address
。改变它,因为这不起作用:

jobinfo.name , 
company.name2 , 
company.name , 
dom.name
请参阅以下代码:-


左外连接fgt\U ext\U admin\U managed\U lov a
SQL> select a.deptno
  2  from dept a, emp a;
select a.deptno
       *
ERROR at line 1:
ORA-00918: column ambiguously defined


SQL>