需要更新10个表,在更新前可以先取到表的名和字段名比如说,更新前可以得到a=tablename,b=colname,请问怎么把a和b传到update语句里面去写法是不是
update '+a+'
set '+b+'=

解决方案 »

  1.   

    1 在你的程序中拼接出来正确的SQL字符串,运行即可 注意是你程序里的字符串,该用""用""
      

  2.   


    CREATE OR REPLACE PROCEDURE p_a IS
      c_sql VARCHAR2(2000);
      a VARCHAR2(20);
      b VARCHAR2(20);
        BEGIN
          a := 'tablename';
          b := 'colname';
          c_sql := 'update '||a||' set '||b||' = (select...)';
          --DBMS_OUTPUT.PUT_LINE(c_sql);
          EXECUTE IMMEDIATE c_sql; 
          commit;
        END;  
      

  3.   

    定义变量a,b分别获取tablename和colname的值
    然后用动态执行命令执行sql 
    EXECUTE IMMEDIATE v_sql;