RT 我用的是ORACLE 9I update  a  set  a.partid = b.id  from sendpartinfo a Inner join part_storage b on a.partno=b.partnum and a.partcode=b.partcode and a.partver=b.partver
执行上面语句的时候 报ORA-00933: SQL 命令未正确结束!
有哪位达人 能分析一下我这句 sql 
等待ing

解决方案 »

  1.   

    oracle update语法你要去熟悉下
    语法
    update 表名
    set 字段=
    where 条件只能单表更新的,一看有from,就知道语法不对
      

  2.   

    你参考下这个吧http://topic.csdn.net/u/20080602/15/c0d76e62-51a3-436c-880f-b346ca4ed495.html
      

  3.   

    UPDATE sendpartinfo a
       SET a.partid =
              (SELECT b.ID
                 FROM part_storage b
                WHERE a.partno = b.partnum
                  AND a.partcode = b.partcode
                  AND a.partver = b.partver)
     WHERE EXISTS (
              SELECT 1
                FROM part_storage b
               WHERE a.partno = b.partnum
                 AND a.partcode = b.partcode
                 AND a.partver = b.partver)
      

  4.   


    a.partver = b.partver 是允许为空的 我应该还怎么去改善呢?
      

  5.   

    a.partver = b.partver 是允许为空的 我应该还怎么去改善呢? 
    nvl(a.partver,'') = nvl(b.partver,'')
      

  6.   

    针对不能用SQL SERVER中
    UPDATE 
       SET
      FROM 
    的语法,oracle其实也提供了可以实现这种功能的update语法
    楼主可以试试:
    UPDATE (SELECT /*+BYPASS_UJVC*/
             A.PARTID,
             B.ID
              FROM SENDPARTINFO A
             INNER JOIN PART_STORAGE B ON A.PARTNO = B.PARTNUM
                                      AND A.PARTCODE = B.PARTCODE
                                      AND A.PARTVER = B.PARTVER)
       SET PARTID = ID