运行的时候报invalid SQL statement,PL/SQL developerFOR w_temp_data IN 
(SELECT CODE,TYPE,VALUE1,VALUE2 FROM T_TEMP_TST_MST_TBL_1LZSBBFKV ORDER BY temp_renew ) LOOP  
UPDATE TST_MST_TBL_1 
SET CODE=w_temp_data.CODE,
TYPE=w_temp_data.TYPE,
VALUE1=w_temp_data.VALUE1,
VALUE2=w_temp_data.VALUE2 
WHERE (CODE=w_temp_data.CODE) AND (TYPE=w_temp_data.TYPE); 
END LOOP;

解决方案 »

  1.   

    FOR w_temp_data IN 
    (SELECT CODE,TYPE,VALUE1,VALUE2 FROM T_TEMP_TST_MST_TBL_1LZSBBFKV ORDER BY temp_renew ) LOOP  可以这样写吗?好像要用游标的吧。不能直接写sql 语句在 in 后面
      

  2.   

    在 test window或者command window下执行..
    必须是pl/sql 块才可以..
    Declare
      ...
    begin
       --your code here
    end;
      

  3.   

    FOR w_temp_data IN 
    (SELECT CODE,TYPE,VALUE1,VALUE2 FROM T_TEMP_TST_MST_TBL_1LZSBBFKV ORDER BY temp_renew ) LOOP  
    UPDATE TST_MST_TBL_1
       SET VALUE1 = w_temp_data.VALUE1,
           VALUE2 = w_temp_data.VALUE2
     WHERE (CODE = w_temp_data.CODE) AND (TYPE = w_temp_data.TYPE);
    END LOOP;去掉   CODE   = w_temp_data.CODE,
           TYPE   = w_temp_data.TYPE,
    这2个可以吧!
      

  4.   

    哦,应该还要加上begin....end FOR w_temp_data IN 
    (SELECT CODE,TYPE,VALUE1,VALUE2 FROM T_TEMP_TST_MST_TBL_1LZSBBFKV ORDER BY temp_renew ) LOOP 
    begin 
    UPDATE TST_MST_TBL_1
       SET VALUE1 = w_temp_data.VALUE1,
           VALUE2 = w_temp_data.VALUE2
     WHERE (CODE = w_temp_data.CODE) AND (TYPE = w_temp_data.TYPE);
    end;
    END LOOP;
      

  5.   

    应该是 dobetterthatnthink(饥不择食) 的答案吧