各位好:
       我有这样个问题,请各位高手帮忙,尽快!
       问题描述:
           有个需求,oracle数据库中一个表(bd_psndoc)中存在人员主键:pk_psndoc、人员编码psncode、人员姓名psnname,另一个视图中(vi_xh_2)也存在对应的人员主键pk_psndoc,人员编号psncode,人员姓名psnname, 现在需求是,通过人员编号(唯一的)匹配把表bd_psndoc 中的pk_psndoc人员主键依次update给视图vi_xh_2中的人员主键,是个多对多的关系,请问该如何写?
           注:是为了修改数据库中数据,需要直接操作后台;
        一下只是未完成的sql语句,请各位给予指正、修改。        update vi_xh_2 set pk_psndoc = (select pk_psndoc from bd_psndoc) where bd_psndoc.psncode = vi_xh_2.psncode;

解决方案 »

  1.   

    update vi_xh_2 v set v.pk_psndoc = (select b.pk_psndoc from bd_psndoc b where b.psncode=v.psncode);
      

  2.   

       update vi_xh_2 set pk_psndoc = (select pk_psndoc from bd_psndoc where bd_psndoc.psncode = vi_xh_2.psncode);
      

  3.   

    update vi_xh_2 set pk_psndoc = (select pk_psndoc from bd_psndoc  where bd_psndoc.psncode = vi_xh_2.psncode) ;
    where要放在里面就正确了
      

  4.   

    update vi_xh_2 set pk_psndoc = (select pk_psndoc from bd_psndoc) where bd_psndoc.psncode = vi_xh_2.psncode;
    注意条件位置,应放在
    update vi_xh_2 set pk_psndoc = (select pk_psndoc from bd_psndoc where bd_psndoc.psncode = vi_xh_2.psncode);