Oracle存储过程中如何将表名作为参数?

来源:百度文库 编辑:神马文学网 时间:2024/04/25 08:04:07

Oracle存储过程中将表名作为参数,处理方法不同于Oracle带参数存储过程的执行,从存储过程的编写来看,将表名作为参数的存储过程更为复杂一些。

实例代码如下:


create procedure proc002(tblName in varchar2) is
  tblnm   char(50);
  strsql  char(250);
  cursor c_fl is select * from it_fl;
  begin
  for cv_fl in c_fl loop
     begin
       tblnm:=tblname;
       strsql:='update '||tblnm||' SET FL = '''||cv_fl.FL||''' WHERE OLDFL = '||cv_fl.OLDFL;
       dbms_output.put_line(strsql);
       execute   immediate   strsql;
     end;
  end loop;
  commit;
end proc002;

      如黑体部分('''为3个单引号),需要用到使用动态sql,用execute   immediate来实现。