SELECT *
FROM
    IKO_BUYING_TABLE A,
    BUYREQ_TBL B,
    WK_TANTOU_MST C,
    SUPPAT_MST D
WHERE
    B.BRQ_ESTREQ = A.BUY_EST_NUM AND
    B.BRQ_ESTREQ_MEISAI = A.BUY_EST_NUM_SPEC AND
    A.BUY_OPERATION_REPLY = C.OLD_TANCD(+) AND
    A.BUY_SUPPLIER = D.SUK_SUPPCD(+) AND
    B.BRQ_PART_ID = D.UPD_PROG(+)这个SQL执行就会出现这个错误, 改怎么改?ORA-01417

解决方案 »

  1.   

    同一个表上不能带两个(+)。 你的SQL 里D表被用了两次。
    用中间表应该就可以了。
    或者
    SELECT *
    FROM
        IKO_BUYING_TABLE A,
        BUYREQ_TBL B,
        WK_TANTOU_MST C,
        SUPPAT_MST D ,
         SUPPAT_MST E 
    where 
    A.BUY_SUPPLIER = D.SUK_SUPPCD(+) AND
        B.BRQ_PART_ID = E.UPD_PROG(+) 这个方法没验证过,你可以试试
      

  2.   

    a table may be outer joined to at most one other table