ITPub博客

首页 > 数据库 > Oracle > [20151103]ora-00918 error.txt

[20151103]ora-00918 error.txt

原创 Oracle 作者:lfree 时间:2015-11-03 15:39:31 0 删除 编辑

[20151103]ora-00918 error.txt

--今天在调试优化时遇到上述问题,语句很复杂通过例子来解析.

SCOTT@test> @ver1

PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.3.0     Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

--实际上存在问题的是一个视图,有几个union all,我抽取其中1段来执行.

SCOTT@test> select deptno,dname,loc,'','' from dept;
    DEPTNO DNAME          LOC           ' '
---------- -------------- ------------- - -
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
        50 MARKETING      LONDON

SCOTT@test> select * from (select deptno,dname,loc,'','' from dept) where deptno=10;
select * from (select deptno,dname,loc,'','' from dept) where deptno=10
       *
ERROR at line 1:
ORA-00918: column ambiguously defined

SCOTT@test> host oerr ora 918
00918, 00000, "column ambiguously defined"
// *Cause:
// *Action:

--看了半天最终明白其中几个显示字段没有表示字段名.修改如下ok:

SCOTT@test> select * from (select deptno,dname,loc,'' x1 ,'' x2 from dept) where deptno=10;
    DEPTNO DNAME          LOC           X X
---------- -------------- ------------- - -
        10 ACCOUNTING     NEW YORK

--浪费1个多小时,不应该在这种地方栽跟头.做一个记录!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-1821638/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    2903
  • 访问量
    6678515