可不可以这样写:update table1 a,table2 b set a.xx=? ,b.xx=? where a.id=b.id and a.id=xx

解决方案 »

  1.   

    oracle可以实现多表插入,但是不能实现多表更新
    多表插入如下:--测试表
    create table sal_history(empid number(4), hiredate date, sal number(7,2));
    create table mgr_history(empid number(4), mgr number(4), sal number(7,2));
    --多表插入
    insert all
           into sal_history values(empid, hiredate, sal)
           into mgr_history values(empid, mgr, sal)
    select empno empid, hiredate, sal, mgr from scott.emp;--查询
    SQL> select * from sal_history;EMPID HIREDATE          SAL
    ----- ----------- ---------
     7369 1980-12-17     800.00
     7499 1981-2-20     1600.00
     7521 1981-2-22     1250.00
     7566 1981-4-2      2975.00
     7654 1981-9-28     1250.00
     7698 1981-5-1      2850.00
     7782 1981-6-9      2450.00
     7788 1987-4-19     3000.00
     7839 1981-11-17    5000.00
     7844 1981-9-8      1500.00
     7876 1987-5-23     1100.00
     7900 1981-12-3      950.00
     7902 1981-12-3     3000.00
     7934 1982-1-23     1300.0014 rows selectedSQL> select * from mgr_history;EMPID   MGR       SAL
    ----- ----- ---------
     7369  7902    800.00
     7499  7698   1600.00
     7521  7698   1250.00
     7566  7839   2975.00
     7654  7698   1250.00
     7698  7839   2850.00
     7782  7839   2450.00
     7788  7566   3000.00
     7839         5000.00
     7844  7698   1500.00
     7876  7788   1100.00
     7900  7698    950.00
     7902  7566   3000.00
     7934  7782   1300.0014 rows selected
      

  2.   


    oracle目前的所有版本,只能一个表一个表的更新数据。